Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
一、题目描述
- 给定两个字符串
s
和t
,它们只包含小写字母。字符串t
由字符串s
随机重排,然后在随机位置添加一个字母。请找出在t
中被添加的字母。 - 示例 1:
输入: s = "abcd", t = "abcde"
输出: "e"
解释: 'e' 是那个被添加的字母。
复制代码
- 示例 2:
输入: s = "", t = "y"
输出: "y"
复制代码
二、思路分析:
- 找出不同的字符,即去除相同的字符,剩下的就是不同字符
- 首先把给定的两个字符串转化为数组操作
- 遍历数组,当数组值相等的时候删除后面的数组项
- 最后剩余的项就是当初添加的字符,返回
三、AC 代码:
function findTheDifference(s: string, t: string): string {
if(s.length === 0) return t;
let sArr = s.split('');
let tArr = t.split('');
for(let i = 0; i < sArr.length; i++){
for(let j =0 ; j < tArr.length; j++){
if(sArr[i] === tArr[j]){
tArr.splice(j, 1);
break;
}
}
}
return tArr[0]
};
复制代码
四、总结:
- 这题其实还挺简单的,上面只写了一种解法,还有其他的方法,比如计数,然后比较。但是最先想到的还是上面这一种,也没有很麻烦。想看看其他思路可以去题目的题解和评论区看看其他大佬的解法,嘻嘻嘻
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END