当前位置: 首页 > news >正文

python indexerror_Python 未超索引情况下 显示 IndexError

如下,我正在解 leetcode 第14题 找数组的最长公共前缀。

想法是先排序,找出最短的值,

然后循环最短值的长度次,然后再循环数组,对比最短值的索引和数组内其他值的索引是否相同.

不同就跳出循环返回最长公共前缀

不懂的是这里为什么会在未超索引的情况下显示 超索引呢?

代码如下

class Solution(object):

def longestCommonPrefix(self, strs):

strs.sort(key = len)

if len(strs) >= 2:

z = strs[0]

for i in range(len(z)):

for s in strs[1:]:

if z[i] != s[i]:

z = z[0:i]

break

else:

print(z[i], s[i], s, i, z)

return z if z else ''

elif len(strs) == 1:

return strs[0]

else:

return ''

s = Solution()

print(s.longestCommonPrefix(["flower","flow","flight"]))

报错如下:

f f flower 0 flow

f f flight 0 flow

l l flower 1 flow

l l flight 1 flow

o o flower 2 flow

Traceback (most recent call last):

File "C:\Users\Administrator\Downloads\shaoq.py", line 50, in

print(s.longestCommonPrefix(["flower","flow","flight"]))

File "C:\Users\Administrator\Downloads\shaoq.py", line 38, in longestCommonPrefix

if z[i] != s[i]:

IndexError: string index out of range

[Finished in 1.1s]

但是同样的循环我测试了下在 powershell 里面是可以运行的,奇怪

>>> x = ["flower","flow","flight"]

>>> x.sort(key = len)

>>> x

['flow', 'flower', 'flight']

>>> z = x[0]

>>> for i in range(len(z)):

... for st in x[1:]:

... print(z[i], st[i])

...

f f

f f

l l

l l

o o

o i

w w

w g

>>> for i in range(len(z)):

... for st in x[1:]:

... if z[i] != st[i]:

... print(i, z[i], st[i], z[0:i])

...

2 o i fl

3 w g flo

等解答,谢谢~

相关文章:

  • calendar round_java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID
  • 新代系统plc梯形图说明书_PLC现场实例电气原理图及编程
  • python注释是什么意思_python注释是什么意思
  • 如何和后台接触的_民熔小课堂|跌落式熔断器该如何检修?点进来告诉你答案!...
  • python rgb库_Python实现RGB与HSI颜色空间的互换方式
  • python删除对象引用_Python:删除自引用对象
  • 如何使用python脚本下载git代码_如何使用python代码操作git代码
  • es数据迁移_MySQL用得好好的,为什么要转ES?
  • python变量通过变量名访问_python – 将变量作为模块中的字符串进行访问
  • h5游戏开发_从WEB前端角度看H5游戏开发
  • 技嘉主板万能网卡驱动_intel i5-10600K搭配技嘉B460M AORUS PRO 主板 性能表现如何
  • ssl 接收到一个超出最大准许长度的记录_数据结构和算法入门之求滑动窗口最大值(Sliding Window Maximum)...
  • mysql锁如何释放_漫画:如何证明sleep不释放锁,而wait释放锁?
  • python程序停止运行、重新开始_求教,程序执行到末尾如何重新开始的问题。
  • pythonjson格式_使用 Python 处理 JSON 格式的数据!
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【css3】浏览器内核及其兼容性
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Android优雅地处理按钮重复点击
  • Java 最常见的 200+ 面试题:面试必备
  • Java教程_软件开发基础
  • LeetCode18.四数之和 JavaScript
  • mysql常用命令汇总
  • orm2 中文文档 3.1 模型属性
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Zsh 开发指南(第十四篇 文件读写)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 工作中总结前端开发流程--vue项目
  • 欢迎参加第二届中国游戏开发者大会
  • 解析带emoji和链接的聊天系统消息
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 跨域
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 漂亮刷新控件-iOS
  • 一些关于Rust在2019年的思考
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • #100天计划# 2013年9月29日
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Java数据结构)ArrayList
  • (NSDate) 时间 (time )比较
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (转)jQuery 基础
  • .Net core 6.0 升8.0
  • .net 获取url的方法
  • .Net 路由处理厉害了
  • .NET 使用配置文件
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .stream().map与.stream().flatMap的使用
  • /etc/shadow字段详解
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?