提取不重复的整数(华为机试,Python)

目录

题目描述

输入/输出示例

代码

代码走读

测试用例

传送门


 

题目描述

输入一个int型整数,按照从右向左的阅读顺序,返回一个不包含重复数字的新的整数。

 

输入/输出示例

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

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

输入示例:

输入:

9876673

输出:

37689

 

代码

"""
提取不重复的整数
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:输入一个int型整数。例如:9876673
输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。例如:37689
"""

if __name__ == '__main__':
    numbers = input()

    while len(numbers) == 0:
        print("Invalid number input. There is no element here! "
              "Please input an integer again.")
        numbers = input()

    for number in numbers:
        if not number.isdigit():
            print("Invalid number input. %s is not a integer number." % numbers)
            exit()

    result = ''
    numbers = numbers[::-1]

    if numbers[0] == '0':
        print("Invalid result. Zero can not be the beginning of an integer.")
        exit()

    for number in numbers:
        if number not in result:
            result = result + number

    print(result)

 

代码走读

"""
提取不重复的整数
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:输入一个int型整数。例如:9876673
输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。例如:37689
"""

if __name__ == '__main__':
    # 输入一个数字
    numbers = input()

    # 如果输入的数字为空,提示报错,直到接收一个不为空的数据
    while len(numbers) == 0:
        print("Invalid number input. There is no element here! "
              "Please input an integer again.")
        numbers = input()

    # 检查数据的合法性
    for number in numbers:
        if not number.isdigit():
            print("Invalid number input. %s is not a integer number." % numbers)
            exit()

    # 将数据逆序后回填,过滤掉重复的数字。如果逆序后的第一位数字为0,报错非法的数字
    result = ''
    numbers = numbers[::-1]

    if numbers[0] == '0':
        print("Invalid result. Zero can not be the beginning of an integer.")
        exit()

    for number in numbers:
        if number not in result:
            result = result + number

    # 打印结果
    print(result)

 

测试用例

1. 输入一个包含重复数字和不重复数字的整数

输入:
353257

输出:
7523

2. 输入一个没有重复数字的整数

输入:
234567

输出:
765432

3. 输入的整数末尾数字是0

输入:
100860

输出:
Invalid result. Zero can not be the beginning of an integer.

4. 输入的数据包含非数字字符

输入:
15AF2

输出:
Invalid number input. 15AF2 is not a integer number.

5. 输入为空


Invalid number input. There is no element here! Please input an integer again.

 

传送门

1. input()函数

https://blog.csdn.net/TCatTime/article/details/82556033

2. len()函数

https://blog.csdn.net/TCatTime/article/details/82469297

3. print()函数

https://blog.csdn.net/TCatTime/article/details/83450692

4. isdigit()函数

https://blog.csdn.net/TCatTime/article/details/82721270

5. exit()函数

https://blog.csdn.net/TCatTime/article/details/82080093

你可能感兴趣的:(#,Python常见题目,Python)