#! conding:utf-8
__author__ = "hotpot"
__date__ = "2017/11/8 13:06"
class Solution:
"""
@param: A: A positive integer which has N digits, A is a string
@param: l: Remove k digits
@return: A string
"""
def DeleteDigits(self, A, l):
A_list = list(A)
flag = 0
print(A_list)
# write your code here
for _ in range(l):
for i in range(flag, len(A_list) - 1):
# 循环比较当前一位大于后一位的时候删除当前位,然后将下次遍历从删除位开始
if int(A_list[i]) > int(A_list[i + 1]):
A_list.remove(A_list[i])
flag = i - 1 if i - 1 > 0 else 0
break
# 有可能数组是不减的数组,所以在最后一次比较的时候也没有办法break这次循环,那么就直接删除最后一位即可,同样需要将下次循环以前一位开始
elif i == len(A_list) - 2:
A_list.remove(A_list[-1])
flag -= 1
# 分成3种情况,因为首位为0必须将0删除,但是如果数组的长度只有1位那么就无需删除,如果最后数组的数据被全部删除,那么数组直接赋值为0
if len(A_list) > 1:
while A_list[0] == "0":
A_list.remove("0")
elif not A_list:
A_list = ["0"]
else:
pass
return "".join(A_list)
。,