- 题意描述
- 给定两个字符串,其中一个字符串是由另外一个字符串的字符随机打乱,增加一个字符生成
- 给定两个字符串,其中一个字符串是由另外一个字符串的字符随机打乱,增加一个字符生成
- 思路一(错误思路)
- 代码1234567891011121314151617class Solution {public:char findTheDifference(string s, string t) {for(int i = 0; i < min(s.size(), t.size()); ++i) {// first : abecd---abcd// second: abc---abe(impossible)if(s[i] != t[i]) {if(s[i] != t[i+1]) {return s[i];} else {return t[i];}}}return s.size() > t.size() ? s[s.size()-1] : t[t.size()-1];}};
- 思路二
- map统计字符出现的次数,不同的返回
- map统计字符出现的次数,不同的返回
- 代码1234567891011121314151617181920class Solution {public:char findTheDifference(string s, string t) {char result;vector<int> vecs(26, 0);vector<int> vect(26, 0);for(int i = 0; i < s.size(); ++i) {vecs[s[i] - 'a'] ++;}for(int i = 0; i < t.size(); ++i) {vect[t[i] - 'a'] ++;}for(int i = 0; i < 26; ++i) {if(vecs[i] != vect[i])result = static_cast<char>('a' + i);}return result;}};