AcWing 1453. 移掉K位数字 java
原题链接
中等
作者:
henhen敲
,
2020-05-25 21:02:25
,
所有人可见
,
阅读 729
依次遍历num中每个元素 删除nums[i+1]<nums[i]的元素i
注意边界问题 (1)头部是0 忽略(2)结束时k>0 从后向前删除 直到k=0
int k;
String nums;
Scanner in = new Scanner(System.in);
nums = in.next();
k = in.nextInt();
if(nums==null||nums.length()==0){
System.out.print("0");
return;
}
StringBuilder ans = new StringBuilder();
for(int i=0; i<nums.length(); i++){
while(ans.length()>0&&nums.charAt(i)-'0'<ans.charAt(ans.length()-1)-'0'&&k>0){//删除num[i]
ans.deleteCharAt(ans.length()-1);
k--;
}
if(ans.length()==0&&nums.charAt(i)=='0') continue;//头部是0 忽略
ans.append(nums.charAt(i));
}
while(k>0&&ans.length()>0){//k>0
ans.deleteCharAt(ans.length()-1);
k--;
}
if(ans.length()==0){
System.out.print("0");
}else
System.out.print(ans.toString());