给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
示例:
输入:
s = "abcd"
t = "abcde"
输出:
e
解释:
'e' 是那个被添加的字母。
解决方案:
class Solution {
public:
char findTheDifference(string s, string t) {
int ss[26]={0};
int st[26]={0};
char res;
for (int i = 0; i < s.size(); i++)
{
ss[s[i] - 'a'] = ss[s[i] - 'a']+1;
}
for (int j = 0; j < t.size(); j++)
{
st[t[j] - 'a'] = st[t[j] - 'a']+1;
}
/*
for (int m = 0; m < 26; m++)
{
cout << ss[m];
cout << st[m] << endl;
}
*/
for (int k= 0; k < 26; k++)
{
if (ss[k] != st[k])
{
res= k + 97;
}
}
return res;
}
};
总结:从多个角度思考问题,有时候换个思路,问题也许就有答案了。