Python
class Solution:
def removeKdigits(self, num: str, k: int) -> str:
result = "0"
for i, c in enumerate(num):
while c < result[-1] and k:
result = result[:-1]
k -= 1
if k == 0:
result += num[i:]
break
result += c
if k: result = result[:-k]
result = result.lstrip("0")
if result: return result
return "0"
C#
public class Solution {
public string RemoveKdigits(string num, int k) {
string result = "0";
int n = result.Length;
for(int i = 0; i < num.Length; i++)
{
n = result.Length;
while(num[i] 0)
{
result = result.Substring(0, n - 1);
k -= 1;
n -= 1;
}
if(k == 0)
{
n = num.Length;
result = result + num.Substring(i, n - i);
break;
}
result += num[i];
}
n = result.Length;
if(k > 0)
{
result = result.Substring(0, n - k);
}
result = result.TrimStart('0');
if(result.Length == 0)
{
return "0";
}
return result;
}
}