文章目录
389. 找不同 javascript
题目:
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母.
示例
输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。
输入:s = "", t = "y"
输出:"y"
输入:s = "a", t = "aa"
输出:"a"
输入:s = "ae", t = "aea"
输出:"a"
思路1
- 分别计算s、t字符串的unicode编码
- 做差
- 得到的差值对应的就是新添加进去的字母
代码1
var findTheDifference = function(s, t) {
// 将unicode编码进行累加,然后相减,得到的绝对值对应的就是添加进去的一个
var sum = 0
var sum1 =0
for(var i=0;i<t.length;i++){
sum += t.charCodeAt(i)
}
for(var j=0;j<s.length;j++){
sum1 += s.charCodeAt(j)
}
return String.fromCharCode(sum-sum1)
};
思路2 正则表达式
- 将两个字符串拼接在一起
- 判断每个字母的个数
- 如果为奇数个,则证明是新添加进去的字母
代码1
var findTheDifference = function(s, t) {
//将两个字符串拼接在一起判断每个字母的个数,如果为奇数个,则证明是新添加进去的字母
var st = s + t
for(var i=0;i<t.length;i++){
if(st.match(new RegExp(t[i],'g')).length & 1)return t[i]
}
};
学艺不精,还需努力💪