移掉k位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 *k *位數字,使得剩下的數字最小。
注意:
示例 1 :
輸入: num = "1432219", k = 3示例 2 :輸出: "1219"
解釋: 移除掉三個數字 4, 3, 和 2 形成乙個新的最小的數字 1219。
輸入: num = "10200", k = 1示例 3 :輸出: "200"
解釋: 移掉首位的 1 剩下的數字為 200. 注意輸出不能有任何前導零。
輸入: num = "10", k = 2思路:輸出: "0"
解釋: 從原數字移除所有的數字,剩餘為空就是0
對於1a34和1b34,如果a>b,則1a34>1b34,所以從左往右遍歷
對於3421,刪掉4會使數字最小,因為4>2
利用單調棧,棧中元素遞增,如果當前元素比棧頂小,則刪除棧頂元素
public string removekdigits(string num, int k)
stack.push(num.charat(i));
}while (k > 0)
stringbuilder sb = new stringbuilder();
while (!stack.isempty())
string ans = sb.reverse().tostring();
int i = 0;
while (i < ans.length() && ans.charat(i) == '0')
ans = ans.substring(i);
if (ans.isempty())
return ans;
}
移掉K位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。輸入 num 10200 k 1 輸出 200 解釋 移掉首位的 1 剩下的數字為 20...
移掉k位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。示例...
Leetcode 移掉k位數字
給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。示例 2 輸入 num 10200 k 1 輸出 200 解釋 移掉首位...