鱼C论坛

 找回密码
 立即注册
查看: 1280|回复: 12

[已解决]题目:编写一个函数以在字符串数组中找到最长的公共前缀字符串。

[复制链接]
发表于 2020-8-4 12:05:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def main(s): # 输入字符串数组
    s1 = max(s)
    s2 = min(s)
    for i in range(len(s2)):
        if s1[i] != s2[i]:
            return s1[:i]


我这样写严谨吗,虽然结果是对的,答案用的是enumerate
最佳答案
2020-8-4 12:44:01



>>> main(['flower', 'flow', 'flowery'])
None


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-4 12:22:13 | 显示全部楼层


你是怎么调用函数的呢,发上来看看吧,感觉怪怪的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 12:38:11 | 显示全部楼层
Twilight6 发表于 2020-8-4 12:22
你是怎么调用函数的呢,发上来看看吧,感觉怪怪的
>>> main(['flower', 'flow', 'fly'])
'fl'
>>> main(['dog', 'racecar', 'car'])
''

就这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 12:44:01 | 显示全部楼层    本楼为最佳答案   



>>> main(['flower', 'flow', 'flowery'])
None


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 12:47:31 | 显示全部楼层
def func(strs, /) -> str:
    for index, chars in enumerate(zip(strs)):
        if len(set(chars)) != 1:
            return strs[0][:index]
    return str[0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 12:49:54 | 显示全部楼层
很明显你的函数是不严谨的,因为输入的字符串不一定等长,而且输入字符串完全相同不会有返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:18:42 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-4 12:49
很明显你的函数是不严谨的,因为输入的字符串不一定等长,而且输入字符串完全相同不会有返回值。

我感觉等不等长倒没问题,就是会没有返回值,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 13:22:18 | 显示全部楼层
白白白白丶白 发表于 2020-8-4 13:18
我感觉等不等长倒没问题,就是会没有返回值,

不等长会导致返回错误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:27:34 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-4 13:22
不等长会导致返回错误。
>>> main(['flower', 'flow', 'fly'])
'fl'
>>> main(['dog', 'racecar', 'car'])
''这俩不就是不等长的嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 13:31:45 | 显示全部楼层

好吧,不等长有时候会不返回
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:35:27 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-4 13:31
好吧,不等长有时候会不返回

对就是有时候不返回,在底下再加个return s1[:i+1],试了几个都正常了,不过有点太丑了也不知道两个return合不合理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-4 13:38:07 | 显示全部楼层
白白白白丶白 发表于 2020-8-4 13:35
对就是有时候不返回,在底下再加个return s1[:i+1],试了几个都正常了,不过有点太丑了也不知道两个retur ...

有分支 少写了 return 才不合理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 13:54:01 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-4 13:38
有分支 少写了 return 才不合理

对奥,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 14:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表