题目
Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input:
s = “abcd”
t = “abcde”Output:
eExplanation:
‘e’ is the letter that was added.
翻译
给定两个字符串s和t只由小写字母组成。
字符串t由随机字符串s生成,然后在随机位置添加一个字母。
找到在t中添加的字母。
思路:
注意:两个字符串,且中间有一个字符不同,这让我立刻想到了刚刚看过的http://blog.csdn.net/zzlcsdn2017/article/details/59697212异或的妙用。
只要让两个字符串加起来,然后依次异或就可以得到不同的那个字母。
解答
我的解法在循环方面做的不够简练,在网上找到了这个
class Solution {
public:
char findTheDifference(string s, string t) {
s += t;
int ch =0;
for(auto val: s) ch ^= val;
return ch;
}
};
原文:http://blog.csdn.net/qq508618087/article/details/52352635,他还有hash表解法,但是这个我不会,我要学学再来更新