给你一个表示某个正整数的字符串 number 和一个字符 digit 。
从 number 中 恰好 移除 一个 等于 digit 的字符后,找出并返回按 十进制 表示 最大 的结果字符串。生成的测试用例满足 digit 在 number 中出现至少一次。
参考代码:
char * removeDigit(char * number, char digit){
int dex[100];
int count = 0;
int res;
for(int i = 0; number[i] != 0; i++){
if(number[i] == digit){
dex[count++] = i;
}
}
if((dex[0] == 0 && digit < number[1]) || count == 1){
res = dex[0];
} else {
res = dex[0];
for(int i = 1; i < count; i++){
for(int j = res; j < dex[i]; j++){
if(number[j + 1] < number[j]){
res = dex[i];
break;
}
if(number[j + 1] > number[j]){
break;
}
}
}
}
int i,j;
for(i = 0,j = 0; number[j] != '\0'; i++,j++){
if(j == res){
if(number[j + 1] == 0){
number[i] = number[j + 1];
break;
} else{
j++;
}
}
number[i] = number[j];
}
number[i] = '\0';
return number;
}