题目:
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.大意:
字符串t是字符串s随机打乱后重组的,而且在此基础上多加了一个字符,请找出这个字符。
思路:
使用位图算法的思想,建立长度为26的两个数组,然后比较两个数组,不相等时对应的就是添加的字符。
代码:
class Solution {
public:
char findTheDifference(string s, string t) {
int flag[26];
int flag2[26];
char res;
for(int i=0;i<26;i++)
{
flag[i] = 0;
flag2[i] = 0;
}
for(int i=0;i<s.length();i++)
{
flag[int(s[i])-97]++;
}
for(int i=0;i<t.length();i++)
{
flag2[int(t[i])-97]++;
}
for(int i=0;i<26;i++)
{
if(flag[i]!=flag2[i])
res = i+97;
}
return res;
}
};