Problem :
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:
e
Explanation:
'e' is the letter that was added.
**
Algorithm:
**
根据题意,使用异或这个逻辑运算可以比较轻松的解决该问题,因为在S和T这两个字符串中,他们的不同点就是字符的顺序,以及T中多了一个字符。因此将所有字符异或,因为
S中的字符T中肯定也有,所以最后会变成0,但是T中多了一个字符,所以T中多的字符和0异或得到这个字符,就是我们要的答案。
**
Code:
**
class Solution {
public:
char findTheDifference(string s, string t) {
char temp=0x00;
for(int i=0;i<s.length();i++)
{
temp^=s[i];
}
for(int i=0;i<t.length();i++)
{
temp^=t[i];
}
return temp;
}
};