python求解,还是最小白阶段,大神们应该可以一眼看出哪里不对劲,我算是脑子已经瓦特了

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

我的代码:

        j=1
        flag=1
        l=len(strs)
        while i<len(strs[0]):
            while j<l:
                if strs[0][i]!=strs[j][i]:
                    flag=0
                    break
                elif strs[0][i]==strs[j][i]:
                    j=j+1
            i=i+1
            if flag==0:
                break
        return strs[0][0:i]

C币余额不足,但是我会嘤嘤嘤可以吗?

外循环一次后没有置空j,return的i要减一。。。
ps:
用for会不会更美观点,学C转Python的么

strs=["flower","flow","flight"]
i=0

flag=0
l = min(map(len,strs))

while i <l:
j = 0
str = strs[0][i]
while j < len(strs):
if str != strs[j][i]:
if i==0:
print('')
j+=1
flag=1
else:
print(strs[0][:i])
flag=1
break
else:
j += 1
if flag==1:
break
else:
i+=1