真题

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

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

IN:

  1. 排序方式 升|降
    DESC | ASCE
  2. 一组十进制整数字符串,以“,”为分隔
    897,123,645

OUT:
按指定排序方式排序后得到的十进制整数字符串;
789,123,456

cpp待补充。。。

py

注意 for num in nums:这种形式,每次改变num的值并不会改变nums的元素的值

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'))
原文地址:https://www.cnblogs.com/yxl-2018/p/12387431.html