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.
====================================================================================================================================
这道题目的大意是:字符串s只含有小写字母,字符串t是由字符串s增加一个字母后重新乱排得到,求增加的字母。
这道题做法很多,我用一个大小为26的数组对应26个字母,即'a'对应arr[0],'b'对应arr[1]……然后遍历s和t中的字母,在s中就减,在t中就加,最后数组中哪个值不为0(就是为1)对应的字母就是我们要求的字母。
class Solution {
public:
char findTheDifference(string s, string t) {
int n = s.size() , arr[26];
memset ( arr , 0 , sizeof ( arr ) );
for ( int i = 0 ; i < n ; i ++ )
{
arr[s[i]-'a'] --;
arr[t[i]-'a'] ++;
}
arr[t[n]-'a'] ++;
for ( int i = 0 ; i < 26 ; i ++ )
if ( arr[i] )
return i + 'a' ;
return 'a';
}
};
如有错误,求告知改正!