# coding: utf-8 class Solution: """ @param A: A positive integer which has N digits, A is a string. @param k: Remove k digits. @return: A string """ def DeleteDigits(self, A, k): # write you code here ''' æ¢ç¶æ¯å é¤k个æ°åï¼å¯ä»¥ç解为ä¿çm个æ°åï¼m = len(A) - k. 1. æ£ææåm个æ°åï¼ä»å颿¾å°ä¸ä¸ªæå°æ°ã 2. ä»å颿尿°ä½ç½®ä¹åå¼å§ï¼æ£ææåm - 1个æ°åï¼åæ¾ä¸ä¸ªæå°æ°ã 3. ç»§ç»ããã ''' digits = [] start = 0 k = len(A) - k while k > 0: min_index = self._min(A, start, k) digits.append(A[min_index]) start = min_index + 1 k -= 1 ret = 0 for d in digits: ret = ret * 10 + int(d) return ret def _min(self, A, start, k): # æ¾å°A[start:len(A) - k]éæå°ä¹¦çç´¢å¼ min_index = start for i in xrange(start + 1, len(A) - k + 1): if A[i] < A[min_index]: min_index = i return min_index # medium: http://lintcode.com/zh-cn/problem/delete-digits/