我必须编写一个函数,它接受两个字符串并比较它们,然后返回字符串中不同的字母数。例如“ABC”和“DEC”应该返回 4。由于我比较它们的方式,我的函数总是出现一个短的。我看过但似乎找不到解决方法。
我试过在不拆分的情况下循环遍历字符串,结果遇到了同样的问题。
function makeAnagram(a, b) {
let result = 0;
let a1 = a.split("").sort();
let b1 = b.split("").sort();
for(let i = 0; i < b1.length; i++){
if(a1.indexOf(b1[i] < 0)){
result += 1;
}
}
return result;
}
最佳答案
一行:
("ABC"+"DEC").split('').sort().join('').replace(/(.)\1+/g, "").length
返回
4
程序步骤:
("ABC"+"DEC")
用 2 个合并的词组成一个字符串:ABCDEC
("ABC"+"DEC").split('').sort().join('')
使字符串中的字符排序:ABCCDE
。这将使我们能够使用正则表达式轻松找到重复项replace(/(.)\1+/g, "")
删除所有 2+ 个字符的序列,然后我们得到ABDE
.length
统计剩余的字符,也就是单次出现的字符。
关于javascript - 比较两个字符串并计算不同的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726764/