题目描述
注意:字符改变要加字符‘0’,每次只能修改一位,所有每次都需要开一个新的字符串存储。进制转换函数记下来
样例
blablabla
算法1
(暴力枚举hash) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include<unordered_set>
using namespace std;
string x,y;
unordered_set<int> hash1;
int base(string s,int b)
{
int res=0;
for(auto x:s)
res=res*b+x-'0';
return res;
}
int main()
{
cin>>x>>y;
for(int i=0;i<x.size();i++)
{
string s=x;
s[i]^=1;
if(s.size()>1 && s[0]=='0') continue;
int t=base(s,2);
hash1.insert(t);
}
for(int i=0;i<y.size();i++)
for(int j=0;j<3;j++)
if(y[i]-'0'!=j)
{
string s = y;
s[i]=j+'0'; //细节
if(s.size()>1 && s[0]=='0') continue;
int t=base(s,3);
if(hash1.count(t))
cout<<t<<endl;
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla