等轴测图是一个无重复字母,连续或不连续的单词。实现一个函数,该函数确定仅包含字母的字符串是否为等距图。假设空字符串是一个等轴测图。忽略字母大小写。
这是我的答案。
didStartUserGesture
答案 0 :(得分:0)
在您的代码中,您正在测试字符是否等于字符串中的第一个字符。如果它们是,则返回false,否则返回true。现在,这是一个错误的逻辑。您需要对照字符串中的其余字符检查单个字符。从最基本的意义上讲,您需要运行一个嵌套循环。
这是解决问题的一种方法。
function isIsogram(str){
var i, j; //declaring two variables to assist in nested loop
str = str.toLowerCase(); //making the string convert to lowercase because a===A will return false
for(i = 0; i < str.length; ++i) { //first loop to select a character from the string to compare against the rest
for(j = i + 1; j < str.length; ++j) { //second loop to compare the above selected character with the rest of the characters in the string
if(str[i] === str[j]) { // now if there is any character that is equal we set it to false as it is not an isogram
return false;
}
}
}
return true; //if the code reaches here, it is an isogram
}
还有许多其他方法可以解决此问题。尝试自己寻找其他解决方案。
答案 1 :(得分:0)
或者您可以根据需要这样做
let isIsogram = (str) => str.split("").every((c, i) => str.indexOf(c) == i);
console.log(isIsogram("thomas")); //true
console.log(isIsogram("moses")); //false
console.log(isIsogram("world")); //true
console.log(isIsogram("a b c")); //false(space repeat twice)