我想知道确定字符串是否包含重复字符(即使它们不相邻)的最佳方法是什么?我尝试将字符串更改为数组,然后使用嵌套的 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");
最佳答案
从字符串创建一个 Set,并检查 Set 的大小是否小于字符串的长度。 Set 只能保存唯一值,因此如果存在重复字符,Set 的大小将小于字符串的长度。
const hasRepeatedCharacters = str => new Set(str).size < str.length;
console.log(hasRepeatedCharacters("abadan"));
console.log(hasRepeatedCharacters("abc"));
关于javascript - 如何检查字符串是否包含重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62136459/