• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

向小园

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

真题

排序数字组成的字符串-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'))

posted on 2020-02-29 23:59  向小园  阅读(115)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3