我做低於這個很簡單codewars卡塔的問題是:如何跳過兩個相同數組索引之間的比較?
的等值線是一個沒有重複的字母,連續或 不連續的一句話。實現一個函數,該函數確定僅包含字母的字符串 是否等值線圖。假設空字符串爲等值線圖形 。忽略信箱。因爲內的indexOf我陣列我的字符串中的每個字母比較
function isIsogram(str){
var letter = str.toLowerCase().split("");
for(var i = 0; i < letter.length; i++) {
if(letter.indexOf(letter[i].toLowerCase()) > -1){
return false;
}
}
return true;
}
我的解決方法總是返回false。解決方案應該將數組與自身進行比較,如果沒有重複的字母,則返回true。但不幸的是,當我將數組與自身進行比較時,它將比較數組中的每個字母,因此基本上即使數組中只有一個字母的字母,因爲它再次與自身比較,它將會返回虛假陳述。
這個問題在殺我。
在你的if語句中,你能添加類似'&& letter.indexOf(letter [i] .toLowerCase())!== i'嗎? – Nick
您最好先對字符串進行排序,然後將其移動並將當前字母與下一個字母進行比較。你的算法被認爲是慢的。 – Rafael