zoukankan      html  css  js  c++  java
  • 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数(最后一个不为0)。

    例如:输入

    9876673

    返回:

    37689


    解法1

    分析:set()集合虽然有去重功能,但是set的元素是无须存放的,所以存入的元素顺序可能与读取的顺序不一致,所以不能使用set

              dict字典在设置值时,可以输入重复的key值,但是最终key值会去重,每个只保留一个值,所以利用dict的功能

    def func(data):
        list_data =[i for i in(data)][::-1] #拆分为list并倒叙排序
        print(list_data)
        # new_list_data =list(set(list_data)) #不能使用set去重,因为去重后,顺序可能改变
    
        #通过dict的key值也会自动去重的功能
        dict_data ={}
        for one in list_data:
            dict_data[one] = 0
        new_list_data =dict_data.keys()
        print(eval(''.join(new_list_data)))  #eval()可以将string数据去引号,返回内部的数据


    解法2: 参考的一个大佬的,哎,其实上面自己想复杂了
    直接对string进行拆分,重新拼接,在拼接的是否判断一下即可
    上菜:

    def func1(data):  #data是input()接收的,所以data是带双引号的int
        new_string =''
       #直接利用列表推导式对字符串进行拆分
        for i in [one for one in data][::-1]:  #先拆分,在倒序。此时没有元素还是string类型
            if i not in new_string:            #如果不存在,在拼接进去
                new_string += i
        print(eval(new_string))                #最后要通过eval()将string转为int


  • 相关阅读:
    bin/sh^M: bad interpreter: No such file or directory解决
    1.2前置条件
    LINUXIPCS信息
    动态添加样式表规则第3版
    Google放出C++代码风格规范
    我的模块加载系统 v4
    有关婚姻的名言
    javascript 测试工具abut v3
    全世界最短的domReady
    javascript 模板系统 ejs v7
  • 原文地址:https://www.cnblogs.com/jesse-zhao/p/14496256.html
Copyright © 2011-2022 走看看