389. Find the Difference的C++解法

来源:互联网 发布:淘宝通知降权了怎么办 编辑:程序博客网 时间:2024/05/21 14:52

要考虑到统计重复字母的个数,比如s里有3个a,t里面有4个a,所以多出来的是a。我的解决办法就是找到一个删除一个,要使用迭代器。

class Solution {public:char findTheDifference(string s, string t) {int i;for (i = 0; i < t.length(); i++){int flag = 1;string::iterator it;for (it = s.begin(); it != s.end(); ++it){if (*it == t[i]){s.erase(it);flag = 0;break;}}if (flag==1) return t[i];}}};

看了下最优解发现又忽略了XOR的作用!!!这种只多出一个来的用XOR解决起来超级简单啊!!我是真的傻!!!

最优解算法:

class Solution {public:    char findTheDifference(string s, string t) {        char r=0;        for(char c:s) r ^=c;        for(char c:t) r ^=c;        return r;    }};


0 0