思路:
题目要求删除字符串里面的数字和它左边最近的非数字字符,那么我们只需要在没遇到数字时记录下标index,遇到了数字时移除数字和index所在位置的字符即可,同时从上一位开始遍历记录下标。
题解(java):
class Solution {
public String clearDigits(String s) {
StringBuffer result = new StringBuffer(s);
int index = -1;
for(int i=0;i<result.length();i++){
if(result.charAt(i)>=48&&result.charAt(i)<=57){
result.deleteCharAt(i);
i--;
if(index!=-1){
result.deleteCharAt(index);
i--;
for(int j=index-1;j>=0;j--){
if(result.charAt(j)>=97&&result.charAt(j)<=122){
index = j;
break;
}
}
}
}else{
index = i;
}
}
return result.toString();
}
}