题目:编写一个函数以在字符串数组中找到最长的公共前缀字符串。
def main(s): # 输入字符串数组s1 = max(s)
s2 = min(s)
for i in range(len(s2)):
if s1 != s2:
return s1[:i]
我这样写严谨吗,虽然结果是对的,答案用的是enumerate
你是怎么调用函数的呢,发上来看看吧,感觉怪怪的 Twilight6 发表于 2020-8-4 12:22
你是怎么调用函数的呢,发上来看看吧,感觉怪怪的
>>> main(['flower', 'flow', 'fly'])
'fl'
>>> main(['dog', 'racecar', 'car'])
''
就这样 白白白白丶白 发表于 2020-8-4 12:38
就这样
>>> main(['flower', 'flow', 'flowery'])
None
def func(strs, /) -> str:
for index, chars in enumerate(zip(strs)):
if len(set(chars)) != 1:
return strs[:index]
return str 很明显你的函数是不严谨的,因为输入的字符串不一定等长,而且输入字符串完全相同不会有返回值。 永恒的蓝色梦想 发表于 2020-8-4 12:49
很明显你的函数是不严谨的,因为输入的字符串不一定等长,而且输入字符串完全相同不会有返回值。
我感觉等不等长倒没问题,就是会没有返回值, 白白白白丶白 发表于 2020-8-4 13:18
我感觉等不等长倒没问题,就是会没有返回值,
不等长会导致返回错误。 永恒的蓝色梦想 发表于 2020-8-4 13:22
不等长会导致返回错误。
>>> main(['flower', 'flow', 'fly'])
'fl'
>>> main(['dog', 'racecar', 'car'])
''这俩不就是不等长的嘛 白白白白丶白 发表于 2020-8-4 13:27
好吧,不等长有时候会不返回 永恒的蓝色梦想 发表于 2020-8-4 13:31
好吧,不等长有时候会不返回
对就是有时候不返回,在底下再加个return s1[:i+1],试了几个都正常了,不过有点太丑了也不知道两个return合不合理 白白白白丶白 发表于 2020-8-4 13:35
对就是有时候不返回,在底下再加个return s1[:i+1],试了几个都正常了,不过有点太丑了也不知道两个retur ...
有分支 少写了 return 才不合理 永恒的蓝色梦想 发表于 2020-8-4 13:38
有分支 少写了 return 才不合理
对奥,谢谢
页:
[1]