在单词数组中找到颠倒的单词
Find the reversed word in an array of words
我需要编写一个函数,接受特定单词的 array
并找到反转版本的索引。
例如。我需要 return 'peehs'
的索引
var example = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
var result = 3
澄清一下,该函数已经接收到一个数组,它并不特定于上述示例。所以我可以收到一个数组,例如;
var example = ['horse', 'esroh', 'horse', 'horse']
var result = 1
此外,正如一些评论者所建议的,我不知道给定的数组。因此我需要找到出现不止一次的单词,然后找到只出现一次的单词的索引。
我原本以为我可以获取数组的第一个索引并将其与其余索引进行比较,但是第一个索引可能是相反的版本,所以这行不通。
按照以下步骤操作:
从控制台或您拥有的任何来源获取输入
输入 <-String
trim [
和 ]
的字符串
split if for ,
,你会得到一个数组
现在,您必须准确知道字符串的位置,即位置
反转字符串
反转字符串<- String.reverse()
foreach(数组):
将反转后的字符串与数组的每个元素进行比较。
宾果! return指数
inputsting = 'sheep';
reversestring = inputsting.split("").reverse().join("");
string s = "['sheep', 'sheep', 'sheep', 'peehs', 'sheep']";
s = s.ltrim('[').rtrim(']');
string [] ss = s.split(',');
int i=0;
for(string s1 : ss)
{
if (s1==reversestring)
return i;
else i++;
}
这是一个示例实现:
var strings = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
var searchString = 'sheep';
function reverseString(str) {
return str.split('').reverse().join('');
}
function indexOfReverseString(str, arr) {
return arr.indexOf(reverseString(str));
}
console.log(indexOfReverseString(searchString, strings));
说明
- 使用
split('')
、reverse()
和join('')
转换为字符数组,然后反转并转换回字符串。
- 使用
indexOf
查找数组中反向字符串的索引(-1
如果没有匹配项)。
您可以通过以下方式查看。
希望下面的代码能解决问题。
const isReverseString = (str,orgStr) =>
Array.from(str).reverse().join("") === orgStr ? true : false
let arrOfString = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'] ;
const orgStr = "sheep";
const findIndexOfArrofString = (arr) => {
arr.forEach((item,index) => isReverseString(item, orgStr) ? console.log("index is:",index) : null)
}
console.log(findIndexOfArrofString(arrOfString))
您一定要为此使用 .split、.join 和 .reverse 吗?根据您的解释,我不确定使用它们是否有意义。
这将是我的解决方案,基于这样的假设:颠倒的词只出现一次,正常的词出现不止一次,数组中只有这些字符串,而你不知道这个词是什么事先是:
let wordArr = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
let tempArr = wordArr.slice().sort();
if(tempArr [0] !== tempArr [1]) {
console.log(wordArr.indexOf(tempArr[0]));
} else {
console.log(wordArr.indexOf(tempArr[tempArr.length -1]));
}
大概你不能像一位评论员建议的那样只做 .indexOf('peehs') 。此解决方案必须动态查找数组中使用的单词是什么,并找到奇数的反向单词。
我需要编写一个函数,接受特定单词的 array
并找到反转版本的索引。
例如。我需要 return 'peehs'
的索引var example = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
var result = 3
澄清一下,该函数已经接收到一个数组,它并不特定于上述示例。所以我可以收到一个数组,例如;
var example = ['horse', 'esroh', 'horse', 'horse']
var result = 1
此外,正如一些评论者所建议的,我不知道给定的数组。因此我需要找到出现不止一次的单词,然后找到只出现一次的单词的索引。
我原本以为我可以获取数组的第一个索引并将其与其余索引进行比较,但是第一个索引可能是相反的版本,所以这行不通。
按照以下步骤操作:
从控制台或您拥有的任何来源获取输入
输入 <-Stringtrim
[
和]
的字符串
split if for
,
,你会得到一个数组现在,您必须准确知道字符串的位置,即位置
反转字符串
反转字符串<-String.reverse()
foreach(数组):
将反转后的字符串与数组的每个元素进行比较。宾果! return指数
inputsting = 'sheep';
reversestring = inputsting.split("").reverse().join("");
string s = "['sheep', 'sheep', 'sheep', 'peehs', 'sheep']";
s = s.ltrim('[').rtrim(']');
string [] ss = s.split(',');
int i=0;
for(string s1 : ss)
{
if (s1==reversestring)
return i;
else i++;
}
这是一个示例实现:
var strings = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
var searchString = 'sheep';
function reverseString(str) {
return str.split('').reverse().join('');
}
function indexOfReverseString(str, arr) {
return arr.indexOf(reverseString(str));
}
console.log(indexOfReverseString(searchString, strings));
说明
- 使用
split('')
、reverse()
和join('')
转换为字符数组,然后反转并转换回字符串。 - 使用
indexOf
查找数组中反向字符串的索引(-1
如果没有匹配项)。
您可以通过以下方式查看。
希望下面的代码能解决问题。
const isReverseString = (str,orgStr) =>
Array.from(str).reverse().join("") === orgStr ? true : false
let arrOfString = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'] ;
const orgStr = "sheep";
const findIndexOfArrofString = (arr) => {
arr.forEach((item,index) => isReverseString(item, orgStr) ? console.log("index is:",index) : null)
}
console.log(findIndexOfArrofString(arrOfString))
您一定要为此使用 .split、.join 和 .reverse 吗?根据您的解释,我不确定使用它们是否有意义。
这将是我的解决方案,基于这样的假设:颠倒的词只出现一次,正常的词出现不止一次,数组中只有这些字符串,而你不知道这个词是什么事先是:
let wordArr = ['sheep', 'sheep', 'sheep', 'peehs', 'sheep'];
let tempArr = wordArr.slice().sort();
if(tempArr [0] !== tempArr [1]) {
console.log(wordArr.indexOf(tempArr[0]));
} else {
console.log(wordArr.indexOf(tempArr[tempArr.length -1]));
}
大概你不能像一位评论员建议的那样只做 .indexOf('peehs') 。此解决方案必须动态查找数组中使用的单词是什么,并找到奇数的反向单词。