求助,哪里错了?
#include <iostream>
#include <map>
using namespace std;
string re;
int k;
int a[20],sum=0;
map<string,bool> vis;
void dfs(string s){
vis[s]=1;
sum++;
for(int i=0;i<s.length();i++){
if(!a[s[i]]){
s[i]=char(a[s[i]]+'0');
if(!vis[s]){
vis[s]=1;
dfs(s);
vis[s]=0;
}
}
}
}
int main(){
cin>>re>>k;
for(int i=1;i<=k;i++){
int x,y;
cin>>x>>y;
a[x]=y;
}
dfs(re);
cout<<sum;
return 0;
}