题号389:
给定两个字符串s和t,它们只包含小写字母。
字符串t由字符串s随机重排,然后在随机位置添加一个字母。
请找出在t中被添加的字母。
示例:
输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。
解题思路:
因为两个字符串只有一个字符不同,其他字符都是两两相同的,很容易想到用异或方法,所有字符异或的最后结果即为不同的字符。
注意:
1 当第一个字符串为空时,直接返回第二个字符串的字符即可;
2 当第一个字符串不空,设不同的字符diff,初始化为第一个字符串的第0位字符,遍历两个字符串逐个异或操作;
3 最后返回两个字符串中所有字符的异或结果diff。
代码实现:
class Solution {
public:
char findTheDifference(string s, string t) {
if(!s.length()) return t[0];
int count=0;
char diff;
for(int i=0;i
if(i==0)
diff=s[i];
else
diff^=s[i];
}
for(int i=0;i
diff^=t[i];
}
return diff;
}
};
领取专属 10元无门槛券
私享最新 技术干货