1.思路:我们可以从左往右找到第一个是零的数位,将这一位设置为1,然后接着往后遍历,从0开始选不同的数字。
2.代码:
#include <iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
const int N=110,M=1e9+7;
typedef long long ll;
int arr[N];
void Solved() {
string num;
cin>>num;
//找到第一个为0的数位
int idx=-1;
for(int i=0;i<num.size();i++){
if(num[i]=='0'){
idx=i;
break;
}
}
string ans;
//如果没有找到说明该数字所有位都非零,
//那么只需要在第一位设置一个非零且不同于该位的最小数字
if(idx==-1){
for(char i='1';i<='9';i++){
if(num[num.size()-1]!=i){
cout<<i<<endl;
break;
}
}
return;
}
//找到了就按题目要求设置即可
for(int i=idx;i<num.size();i++){
for(char j='0';j<='9';j++){
if(j!=num[i]){
ans+=j;
break;
}
}
}
cout<<ans<<endl;
}
int main()
{
int t;
cin>>t;
while(t--) {
Solved();
}
return 0;
}