LeetCode 402 移掉K位數字 JAVA

2021-09-24 06:21:05 字數 982 閱讀 3815

給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。

注意:num 的長度小於 10002 且 ≥ k。

num 不會包含任何前導零。

示例 1 :

輸入: num = "1432219", k = 3

輸出: "1219"

解釋: 移除掉三個數字 4, 3, 和 2 形成乙個新的最小的數字 1219。

示例 2 :

輸入: num = "10200", k = 1

輸出: "200"

解釋: 移掉首位的 1 剩下的數字為 200. 注意輸出不能有任何前導零

示例3 :

輸入: num = "10", k = 2

輸出: "0"

解釋: 從原數字移除所有的數字,剩餘為空就是0。

解法:

class solution 

if(num.length()==0||k>num.length())

int digits=num.length()-k; //輸出字串的長度

char stk=new char[num.length()];//模擬棧

int top=0;//棧頂的下乙個元素位置

for(int i=0;i0&&stk[top-1]>c&&k>0)

stk[top++]=c;//入棧

}int id=0;

while(idif(id==digits)

else

return new string(stk,id,digits-id);//返回乙個新的字串:從stk[id]開始 長度為(digits-id)

}public static void main(string args)

}

leetcode402移掉K位數

給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。思路...

LeetCode 402 移掉K位數字

給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 num 的長度小於 10002 且 k。num 不會包含任何前導零。示例 1 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。示例...

LeetCode 402 移掉K位數字

題目鏈結 題目描述 給定乙個以字串表示的非負整數 num,移除這個數中的 k 位數字,使得剩下的數字最小。注意 示例 輸入 num 1432219 k 3 輸出 1219 解釋 移除掉三個數字 4,3,和 2 形成乙個新的最小的數字 1219。輸入 num 10200 k 1 輸出 200 解釋 移...