您的位置:首页 > 编程语言 > C语言/C++

389. Find the Difference的C++解法

2017-03-31 11:05 155 查看
要考虑到统计重复字母的个数,比如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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ leetcode