You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python找出列表中多整数元素的起始连续匹配位数

找出整数列表的最长公共前缀位数

实现思路

  1. 把所有整数转换成字符串,方便逐位对比字符
  2. 以第一个元素的长度为最大遍历范围,从第一位开始检查所有元素在该位置的字符是否一致
  3. 一旦遇到某一位有元素不匹配,或者某个元素长度不够到该位,就返回当前已匹配的位数;如果所有位都完全匹配,就返回基准元素的长度

代码实现

def longest_common_prefix_digit_count(numbers):
    if not numbers:
        return 0
    # 将所有整数转为字符串
    str_numbers = list(map(str, numbers))
    base_str = str_numbers[0]
    match_count = 0
    
    for idx in range(len(base_str)):
        current_char = base_str[idx]
        # 检查其余所有数字的对应位置字符
        for num_str in str_numbers[1:]:
            # 若当前数字长度不足,或字符不匹配,直接返回已匹配位数
            if idx >= len(num_str) or num_str[idx] != current_char:
                return match_count
        match_count += 1
    # 所有位都匹配的情况
    return match_count

测试示例

  • 示例1:
print(longest_common_prefix_digit_count([123456789, 123467890, 123489012]))  # 输出:4
  • 示例2:
print(longest_common_prefix_digit_count([123456789, 123467890, 123489012, 123589000]))  # 输出:3

边界情况处理

  • 输入空列表:返回0
  • 输入单个整数:返回该整数的位数,比如longest_common_prefix_digit_count([1234])返回4
  • 输入长度不一致的整数:比如[1234, 12],返回2(前两位均为12)

内容的提问来源于stack exchange,提问作者user2788201

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:16:01