leetcode 最长公共前缀,代码运行问题
leetcode上有一道最长公共前缀的问题,想换一种方式解,然而打出来的是:
fl
fl
flo
为何print会出来3个结果?
class Solution:
def inter_prefix(self,strs=list,minPrefix=str):
if minPrefix == '': return minPrefix
for i in range(len(strs)):
mi = strs[i][:len(minPrefix)]
if minPrefix != mi:
minPrefix = minPrefix[:-1]
self.inter_prefix(strs, minPrefix)
print(minPrefix)
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if not strs: return ''
minPrefix = strs[0]
# if len(strs) == 1:return (minPrefix)
for i in range(len(strs)):
if len(minPrefix) > len(strs[i]):
minPrefix = strs[i]
self.inter_prefix(strs,minPrefix)
if name == '__main__':
Solution().longestCommonPrefix(["flower","flow","flight"])
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为你使用了递归,函数返回的时候由内向外print。
总结下你的思路可以这样写。