一、题目
给定两个字符串 s 和 t ,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例 1:
输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。
示例 2:
输入:s = "", t = "y"
输出:"y"
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-the-difference
二、思路
t 是由 s 随机重排得到,两者的顺序之间没有关联,所以需要对两个字符串先进行排序,然后开始比遍历s 和 t, 在遍历完s之前,s 和 t 出现的第一个相同下标的字符不同,t 中的该字符就是所插入的,若前面的符都相同,则 t 的最后一个字符就是新插入的。
三、代码
class Solution {
public:
char findTheDifference(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
for(int i=0; i<s.size(); i++){
if(s[i] != t[i]){
return t[i];
}
}
return t[s.size()];
}
};