题目:
又遇到了这种需要找差异的问题,基本思路一般都是两种,计数或者排序然后查找。
这里我选择了排序查找的算法:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class Solution {
public:
char findTheDifference(string s, string t) {
sort(s.begin(),s.end());
sort(t.begin(),t.end());
int i = 0;
for(i=0;i<s.length();i++)
{
if(s[i]!=t[i])
{
return t[i];
}
}
return t[i];
}
};
int main()
{
string s = "abcd";
string t = "abcde";
Solution solution;
cout<<solution.findTheDifference(s,t)<<endl;
}
题解里面的相加求差真的是一个很巧妙地办法了,直呼内行,这里一并贴出
class Solution {
public:
char findTheDifference(string s, string t) {
int as = 0, at = 0;
for (char ch: s) {
as += ch;
}
for (char ch: t) {
at += ch;
}
return at - as;
}
};