gpt4 book ai didi

arrays - 算法 - 检查字符串数组中的任何字符串是否是同一数组中任何其他字符串的前缀

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:04 24 4
gpt4 key购买 nike

我想检查字符串数组中的任何字符串是否是同一数组中任何其他字符串的前缀。我在考虑基数排序,然后单次遍历数组。

谁有更好的主意?

最佳答案

我认为,可以修改基数排序以即时检索前缀。我们所要做的就是按首字母对行进行排序,在每个单元格中存储没有首字母的副本。然后如果单元格包含空行,则此行对应一个前缀。如果单元格只包含一个条目,那么其中当然没有可能的行前缀。

在这里,这可能比我的英语更干净:

lines = [
"qwerty",
"qwe",
"asddsa",
"zxcvb",
"zxcvbn",
"zxcvbnm"
]

line_lines = [(line, line) for line in lines]

def find_sub(line_lines):
cells = [ [] for i in range(26)]
for (ine, line) in line_lines:
if ine == "":
print line
else:
index = ord(ine[0]) - ord('a')
cells[index] += [( ine[1:], line )]
for cell in cells:
if len(cell) > 1:
find_sub( cell )

find_sub(line_lines)

关于arrays - 算法 - 检查字符串数组中的任何字符串是否是同一数组中任何其他字符串的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com