真题

排序数字组成的字符串-huawei


对十进制字符串中的每个整数字符串进行重排序,获取所有排序中的最小整数;输出字符串的每一个都必须为有效值:120排序后为102,‘012’为无效值。
根据指定的排序方式对重排序的十进制字符串进行排序后输出;实现时无需考虑非法输入。

IN:

  1. 排序方式 升|降
    DESC | ASCE
  2. 一组十进制整数字符串,以“,”为分隔
    897,123,645
    OUT:
    按指定排序方式排序后得到的十进制整数字符串;
    789,123,456

py

class Solution():
    def MinNum(self,sortway,ss):
        j = 0
        nums = ss.split(',')
        for i in range(len(nums)):
            lst = list(nums[i])
            lst.sort()
            print(lst)
            nums[i] = ''.join(lst)
            if nums[i].find('0')!=-1:
                r = nums[i].rfind('0')
                print(r)
                nums[i] = nums[i][r+1]+nums[i][0:r+1]+nums[i][r+2:]
        if sortway == 'ASCE':
            nums.sort()
        else:
            nums.sort(reverse=True)
        res = ''
        for i in range(len(nums)):
            res = res+nums[i]
            if i != len(nums)-1:
                res = res+(',')
        return res

N = Solution()
print(N.MinNum('ASCE','807,1603,645'))

猜你喜欢

转载自www.cnblogs.com/yxl-2018/p/12387431.html