Find the Difference
题目描述:
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.
题目思路:
1.对s字符串中对每一个字符进行标记。并且记录出现次数。
2.遍历t字符串,如果该字符未被标记,则返回该字符。
3.如果该字符被标记过,则相应对出现次数减1。(直到减为0时,再次出现该字符,则视之为没有被标记,返回该字符即可)
题目代码:
class Solution {
public:
char findTheDifference(string s, string t) {
map<char,int>table;
for(int i = 0; i < s.length(); i++){
table[s[i]]++;
}
for(int i = 0; i < t.length(); i++){
if(!table[t[i]]){
return t[i];
}else{
table[t[i]]--;
}
}
return ' ';
}
};