寫于2015年4月7日,最新刪改于2017年5月29日,可能已過時,請謹慎參考。
要判斷一個單詞中是否有重復字母非常容易,先用循環(huán)嘗試一次:
function isIsogram(str) {
str = str.toLowerCase();
for (let i = 0; i < str.length - 1; i++) {
if (str.indexOf(str.charAt(i), i + 1) >= 0) {
return false;
}
}
return true;
}
這個方法是從左向右檢查字符,嘗試找出最近的一個相同字符。
換個思路,用正則來處理這個問題將無比簡潔:
function isIsogram2(str) {
return !/(.).*?\1/i.test(str);
}
匹配過程和上述循環(huán)相同,性能與循環(huán)版相當。