[题目]
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.
//我采用的方法:遍历,空间复杂度低,时间复杂度高
char findTheDifference(string s, string t)
{
char result;
int i=0,j=0;
if(s.length()==t.length()) return 0;
for(i=0;i<t.length();i++)
{
result=t.at(i);
for(j=0;j<s.length();j++)
{
if(result==s.at(j))
{
s.at(j)=0;
break;
}
}
if(j==s.length()) return result;
}
}
//另外的方法,用一个26位的数目表示map结构,记录对应字符串的字符和出现的次数
char findTheDifference(string s,string t){
int hash[26]={0};
for(int i=0;i<s.length();i++)
{
hash[s[i]-'a']++;
}
for(int j=0;j<t.length();j++)
{
hash[t[j]-'a']--;
if(hash[t[j]-'a']<0) return t[j];
}
return 0;
}