Skip to content

Commit bc80328

Browse files
committed
删除数字
1 parent f0af670 commit bc80328

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

delete_digits.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# -*- coding: utf-8 -*-
2+
3+
class Solution:
4+
"""
5+
@param A: A positive integer which has N digits, A is a string.
6+
@param k: Remove k digits.
7+
@return: A string
8+
"""
9+
def DeleteDigits(self, A, k):
10+
# write you code here
11+
'''
12+
既然是删除k个数字,可以理解为保留m个数字,m = len(A) - k.
13+
1. 扣掉最后m个数字,从前面找到一个最小数。
14+
2. 从前面最小数位置之后开始,扣掉最后m - 1个数字,再找一个最小数。
15+
3. 继续。。。
16+
'''
17+
digits = []
18+
start = 0
19+
k = len(A) - k
20+
while k > 0:
21+
min_index = self._min(A, start, k)
22+
digits.append(A[min_index])
23+
start = min_index + 1
24+
k -= 1
25+
ret = 0
26+
for d in digits:
27+
ret = ret * 10 + int(d)
28+
return ret
29+
30+
def _min(self, A, start, k): # 找到A[start:len(A) - k]里最小书的索引
31+
min_index = start
32+
for i in xrange(start + 1, len(A) - k + 1):
33+
if A[i] < A[min_index]:
34+
min_index = i
35+
return min_index

0 commit comments

Comments
 (0)