华为机试题:HJ9 提取不重复的整数(python)

描述输入一个 int 型整数按照从右向左的阅读顺序返回一个不含重复数字的新的整数。保证输入的整数最后一位不是 0 。

数据范围 1 ≤ n ≤ 108

输入描述输入一个int型整数

输出描述按照从右向左的阅读顺序返回一个不含重复数字的新的整数

示例1

输入9876673
输出37689

Python3

a = input()[::-1]		# 倒叙输出
print("".join(sorted(set(a), key=a.index)))		# 按照字符串 a 进行排序
     
  • input()获取控制台任意形式的输入。输出均为字符串类型。
  • set() 创建集合。其表示一个无序不重复元素的序列。
  • sorted() 对所有可迭代类型进行排序。不改变原始序列返回排序后的新序列。
  • str.join()将序列即字符串、元组、列表、字典中的元素以指定的字符连接并返回一个新的字符串。
  • print() 打印输出。

知识点详解

1、set() 创建集合。表示一个无序不重复元素的序列。

【Python】集合set的使用详解

无序无论序列中的元素在赋值给变量之前是什么顺序赋值后各元素位置都将会随机显示。
不重复对序列中的重复元素赋值给变量后系统会自动去除重复元素只保留一个。

  • 备注【列表、元组和字符串】都属于序列。
  • 备注set(str) 对字符串去重set(tuple)对元组去重、set(list)对列表去重。

集合的创建方法

  • 1创建空集set()
  • 2创建集合set((A,B))
  • 3创建集合{}
# 1创建空集set()
person1 = set()         # 空集合
print(len(person1))     # 【输出结果】0
print(person1)          # 【输出结果】set()

# 2创建集合set((A,B))
person2 = set(("student", "teacher", "babe", 123, 321, 123))
print(len(person2))     # 【输出结果】5
print(person2)          # 【输出结果】{321, 'teacher', 'babe', 123, 'student'}

# 3创建集合{}
person = {"student", "teacher", "babe", 123, 321, 123}
print(len(person))      # 【输出结果】5
print(person)           # 【输出结果】{'student', 321, 'teacher', 123, 'babe'}

2、sorted() 对所有可迭代类型进行排序。不改变原始序列返回排序后的新序列。

函数说明sorted(iterable, key=None, reverse=False)
输入参数

  • iterable可迭代的对象如字典、列表。
  • key可迭代类型中某个属性对指定函数进行排序。默认=None
  • reverse升序reverse=False默认降序reverse=Ture

备注字符串按照ASCII的大小进行排序。默认先排序大写字母后排序小写字母。

lst1 = (5, 4, 3, -2, 1)
L1 = sorted(lst1)                       # 【输出结果】[-2, 1, 3, 4, 5]
L2 = sorted(lst1, key=abs)              # 【输出结果】[1, -2, 3, 4, 5]
L3 = sorted(lst1, reverse=True)         # 【输出结果】[5, 4, 3, 1, -2]
print(L1)
print(L2)
print(L3)
###################################################################################
lst2 = ('F', 'D', 'Y', 'e', 'a', 'v')
L4 = sorted(lst2)                       # 【输出结果】['D', 'F', 'Y', 'a', 'e', 'v']
L5 = sorted(lst2, key=str.lower)        # 【输出结果】['a', 'D', 'e', 'F', 'v', 'Y']
print(L4)
print(L5)

3、str.join()将序列即字符串、元组、列表、字典中的元素以指定的字符连接并返回一个新的字符串。

函数说明'Separator'.join(Sequence)
功能说明以Separator为分隔符对Sequence所有元素进行逐个分割并返回一个新的字符串。
输入参数

  • Separator代表分隔符。 可以是单个字符如','、'.'、'-'、'*'等也可以是字符串如: 'abc'
  • Sequence代表要连接的元素序列。可以是字符串、元组、列表、字典。
    备注1SeparatorSequence都只能是string型不能是int型和float型否则系统报错。
    备注2字典的读取是随机的。
a1 = 'I Love China !'
print('字符串: ', ' '.join(a1))

a2 = ['I', 'Love', 'China', '!']
print('列表: ', ' '.join(a2))

a3 = ('I', 'Love', 'China', '!')
print('元祖: ', ' '.join(a3))

a4 = {'I': 1, 'Love': 2, 'China': 3, '!': 4}
print('字典: ', ' '.join(a4))
'''
字符串:  I   L o v e   C h i n a   !
列表:  I Love China !
元祖:  I Love China !
字典:  I Love China !
'''

import os     	# 导入路径模块
os.getcwd()   	# 获取当前路径
data_save = os.path.join(os.getcwd(), 'data_save')  # 获取当前路径并组合新的路径
print(data_save)
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python