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

LeetCode提交最长公共前缀Python代码提示列表索引越界是什么原因

索引越界问题原因

你提交的代码触发IndexError: list index out of range的核心原因是写死了访问输入数组的固定下标元素,没有适配所有合法输入场景,具体问题如下:

  • LeetCode的测试用例覆盖了不同长度的输入数组strs:当数组长度小于2时,执行secondWord = list(strs[1])会直接触发越界;如果输入是空数组,连firstWord = list(strs[0])都会报错。你本地测试的用例刚好是长度为3的数组,所以没有触发问题。
  • 就算输入数组长度大于等于3,代码依然存在越界风险:循环过程中你直接用secondWord[i]、thirdWord[i]取对应位置的字符,如果第二个或第三个字符串的长度小于当前遍历的下标i,同样会触发越界。比如输入strs = ["apple", "app", "ap"],当i=3时,第二个字符串只有3个字符,最大有效下标为2,访问下标3就会报错。
适配优化方向

如果要兼容所有合法输入,需要先处理边界场景,再做公共前缀判断:

  1. 优先判断如果输入数组为空,直接返回空字符串
  2. 如果输入数组长度为1,直接返回唯一的字符串元素
  3. 遍历字符时不要绑定固定的前三个字符串,要同时校验所有字符串对应位置的字符是否一致

你提到的zip方案确实更简洁,Python中zip(*strs)可以把所有字符串的同位置字符打包成元组,只要判断元组内的所有元素是否相同,就能逐步得到最长公共前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:15:05