用Python代码解决:如果一个n位数刚好包含了1至n中所有数字各一次,则称它是全数字的,例如四位数1324就是1至4全数字的。设计一个“全数字”的判断函数 pandigital(),使其能接收键盘上输入的多 个整数,并输出其中的全数字。 比如输入以下5个数字: 1243,322,321,1212,2354 则pandigital()输出为:1243,321
时间: 2023-06-13 12:09:15 浏览: 398
44:数字序列中某一位的数字(剑指offer第2版Python)LeetCode.400
以下是实现代码:
```python
def pandigital(*nums):
res = []
for num in nums:
if len(set(str(num))) == len(str(num)) == max(map(int, str(num))):
res.append(num)
return res
nums = map(int, input("请输入多个整数,以空格分隔:").split())
print(pandigital(*nums))
```
解释:
1. 首先定义 pandigital 函数,使用可变参数 *nums 接收多个整数。
2. 在函数内部,遍历每个整数 num。
3. 使用 set() 函数将 num 转换为字符集,判断字符集的长度是否等于 num 的长度,以及 num 的最大值是否等于 num 的长度。
4. 如果满足上述条件,则将 num 加入结果列表 res 中。
5. 最后返回结果列表 res。
6. 在主程序中,使用 map() 函数将输入的字符串转换为整数列表。
7. 调用 pandigital 函数,并使用可变参数 *nums 将整数列表传递给函数。
8. 输出函数的返回结果。
阅读全文