1625. The lexicographically smallest string after performing an operation
BFS enumeration
The topic is concise and concise, and the amount of data is not large. Let's search with BFS.
class Solution {
public:
string findLexSmallestString(string s, int a, int b) {
queue<string> q;
int n=s.length();
string res=s;
q.push(s);
unordered_set<string> vis;
vis.insert(s);
while(!q.empty()){
string ss=q.front();
q.pop();
res=min(res,ss);
//累加
string s1=ss;
for(int i=1;i<n;i+=2){
s1[i]=(s1[i]-'0'+a)%10+'0';
}
if(!vis.count(s1)){
vis.insert(s1);
q.push(s1);
}
//轮转
string s2=ss;
s2=ss.substr(n-b)+ss.substr(0,n-b);
if(!vis.count(s2)){
vis.insert(s2);
q.push(s2);
}
}
return res;
}
};