如何在PYTHON里解决最长公共前缀问题

2025-10-10 07:32:46

1、打开JUPYTER NOTEBOOK,新建一个空白的PY文档。

如何在PYTHON里解决最长公共前缀问题

2、strs = ["flower","flow","flight"]

for str in strs:

    print(len(str), end=" ")

遍历一下长度,发现长度不均。

如何在PYTHON里解决最长公共前缀问题

3、d = {}

for str in strs:

    d[str] = len(str)

d

可能会有些同学想用字典来存储。但是这样不好比较。

如何在PYTHON里解决最长公共前缀问题

4、strs = ["flower","flow","flight"]

d = {}

for str in strs:

    d[len(str)] = str

d

这样反过来存储更不好比较,要注意了。

如何在PYTHON里解决最长公共前缀问题

5、strs = ["flower","flow","flight"]

strs_num = []

for str in strs:

    strs_num.append(len(str))

print(min(strs_num))

print(strs_num.index(min(strs_num)))

我们可以找到最短的那个数据,然后和其他的相比较。但是这样不好比较。

如何在PYTHON里解决最长公共前缀问题

6、strs = ["flower","flow","flight"]

result = ""

for i in range(len(strs[0])):

    for j in range(1, len(strs)):

        if strs[0][i] == strs[j][i]:

            result = result + strs[0][i]

            

print(result)

我们可以用两个遍历来对比,但是这里少了一个条件。

如何在PYTHON里解决最长公共前缀问题

7、strs = ["flower","flow","flight"]

result = ""

for i in range(len(strs[0])):

    for j in range(1, len(strs)):

        if i > len(strs[j]) or strs[0][i] != strs[j][i]:

            print(result)

            

print(result)

注意就是i的长度问题,这里大于还是不够的,因为长度是从1开始计算的。

如何在PYTHON里解决最长公共前缀问题

8、strs = ["flower","flow","flight"]

result = ""

for i in range(len(strs[0])):

    for j in range(1, len(strs)):

        if i >= len(strs[j]) or strs[0][i] != strs[j][i]:

            print(result)

    result += strs[0][i]

            

print(result)

这样设置就比较合理了。

如何在PYTHON里解决最长公共前缀问题

9、strs = ["flower","flow","flight"]

result = ""

if strs == "":

    print(result)

for i in range(len(strs[0])):

    for j in range(1, len(strs)):

        if i >= len(strs[j]) or strs[0][i] != strs[j][i]:

            print(result)

    result += strs[0][i]

            

print(result)

如果怕用户什么都没输入,要这样定义。

如何在PYTHON里解决最长公共前缀问题

10、strs = ["flower","flow","flight"]

result = ""

if len(strs) == 0:

    print(result)

for i in range(len(strs[0])):

    for j in range(1, len(strs)):

        if i >= len(strs[j]) or strs[0][i] != strs[j][i]:

            print(result)

    result += strs[0][i]

            

print(result)

这样写就比较清晰了。

如何在PYTHON里解决最长公共前缀问题

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢