我想知道确定字符串是否包含重复字符的最佳方法是什么,即使它们并不相邻?我尝试将字符串更改为数组,然后使用嵌套的for循环将数组中的每个项目与另一个进行比较,但是由于某种原因,它不起作用。
function hasRpeatedCharacters(str) {
let array = [];
for (let i = 0; i < str.length; i++) {
array.push(str[i]);
}
for (let j = 0; j < array.length; j++) {
for (let k = j + 1; k < array.length; k++) {
if (array[j] != array[k]) {
return true;
} else {
return false;
}
}
}
}
hasRepeatedCharacters("abadan");
答案 0 :(得分:2)
根据字符串创建一个Set,然后检查Set的大小是否小于字符串的长度。一个Set只能容纳唯一的值,因此,如果有重复的字符,则Set的大小将小于字符串的长度。
const hasRepeatedCharacters = str => new Set(str).size < str.length;
console.log(hasRepeatedCharacters("abadan"));
console.log(hasRepeatedCharacters("abc"));