aboutsummaryrefslogtreecommitdiff
path: root/remove_k_digits.py
diff options
context:
space:
mode:
Diffstat (limited to 'remove_k_digits.py')
-rw-r--r--remove_k_digits.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/remove_k_digits.py b/remove_k_digits.py
new file mode 100644
index 0000000..6355b1b
--- /dev/null
+++ b/remove_k_digits.py
@@ -0,0 +1,33 @@
+# 402. Remove K Digits
+
+"""
+given string 'num' representing a non-negative integer 'num', and an integer
+'k' return the smallest possible integer after removing 'k' digits from
+'num'.
+"""
+
+
+class Solution(object):
+ def removeKdigits(self, num, k):
+ """
+ :type num: str
+ :type k: int
+ :rtype: str
+ """
+ stk = list()
+ for n in num:
+ while stk and k and stk[-1] > n:
+ stk.pop()
+ k -= 1
+ if stk or n != "0":
+ stk.append(n)
+ if k:
+ stk = stk[0:-k]
+ return "".join(stk) or "0"
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.removeKdigits(num="1432219", k=3))
+ print(obj.removeKdigits(num="10200", k=1))
+ print(obj.removeKdigits(num="10", k=2))