feat: 2025-10-30打卡
This commit is contained in:
38
402.remove-k-digits.java
Normal file
38
402.remove-k-digits.java
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* @lc app=leetcode id=402 lang=java
|
||||
*
|
||||
* [402] Remove K Digits
|
||||
*/
|
||||
|
||||
// @lc code=start
|
||||
class Solution {
|
||||
public String removeKdigits(String num, int k) {
|
||||
ArrayDeque<Character> stack = new ArrayDeque<>();
|
||||
for(int i = 0; i < num.length(); i++) {
|
||||
if(k == 0) {
|
||||
stack.addLast(num.charAt(i));
|
||||
} else {
|
||||
while(k>0 && !stack.isEmpty() && stack.peekLast() > num.charAt(i)) {
|
||||
k--;
|
||||
stack.removeLast();
|
||||
}
|
||||
stack.addLast(num.charAt(i));
|
||||
}
|
||||
}
|
||||
while(!stack.isEmpty() && k > 0) {
|
||||
k--;
|
||||
stack.removeLast();
|
||||
}
|
||||
// 消除开头的0
|
||||
while(!stack.isEmpty() && stack.getFirst()=='0') {
|
||||
stack.removeFirst();
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(Character c : stack) {
|
||||
sb.append(c);
|
||||
}
|
||||
return sb.isEmpty()?"0":sb.toString();
|
||||
}
|
||||
}
|
||||
// @lc code=end
|
||||
|
||||
Reference in New Issue
Block a user