在Python中判断三位数是否有任意两位相同,核心方法是提取各位数字后两两比较,常用字符串索引或数学运算实现。 例如,数字122
的十位和个位相同,即符合条件。以下是具体实现方法和应用场景:
-
字符串索引法
将数字转为字符串后直接比较下标对应的字符,代码简洁直观:python复制
def has_duplicate_digits(num): s = str(num) return s[0] == s[1] or s[1] == s[2] or s[0] == s[2]
适用于需要快速验证的场景,如用户输入检查或数据清洗。
-
数学运算法
通过整除和取余分离各位数字,避免类型转换:python复制
def has_duplicate_digits(num): a = num // 100 b = (num // 10) % 10 c = num % 10 return a == b or b == c or a == c
适合对性能要求较高的批量数据处理,如数值分析或算法优化。
-
扩展应用
- 去重统计:结合集合长度判断是否仅两位相同(如
112
返回True
,111
返回False
)。 - 负数处理:先取绝对值再判断,兼容负三位数场景。
- 去重统计:结合集合长度判断是否仅两位相同(如
提示:根据实际需求选择方法——字符串法易读性强,数学法效率更高。若需处理非整数或特殊格式,可结合正则表达式增强鲁棒性。**