示例 2 :
輸入: num = 「10200」, k = 1
輸出: 「200」
解釋: 移掉首位的 1 剩下的數字為 200. 注意輸出不能有任何前導零。
示例 3 :
輸入: num = 「10」, k = 2
輸出: 「0」
解釋: 從原數字移除所有的數字,剩餘為空就是0。
如果下乙個元素比當前棧元素小,移除當前元素,把下乙個元素入棧10200
k =2
棧:1k=1
0200
0<1
k = 0
棧:0k==0
棧:0200
處理最開頭的0,返回結果
10k = 2
棧:1k = 1
棧:0k=0
接下來就要和上面的例子一樣處理0
如果字串是空就返回指定值
func
removekdigits
(num string
, k int
)string
stack[top]
= num[i]
top++
} i :=
0for i < digits && stack[i]
=='0'
if i == digits
return
string
(stack[i:digits]
)}
402 移掉K位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。示例...
402 移掉K位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。維護乙個單調遞增棧,解決拆開的最值問題 class solution q.offerlast num.charat i for int i 0 i k i stringbuffer sb newstringbuff...
LeetCode 402 移掉K位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。示例...