python - 不太了解这个嵌套循环的逻辑 - 无法修改
问题描述
我正在寻找以前回答的有关在数组中查找重复子字符串的问题,并遇到了https://cs.stackexchange.com/questions/79182/im-looking-for-an-algorithm-to-find-unknown-patterns-在一个字符串中。它完全符合我的要求,除了它分析单个字符串(并找到单个字符的重复),而我想分析一个数组(整数,一些超过 9)。我无法按原样使用代码完成此操作,因为例如“10”将被理解为“1”和“0”。
因此,我想分析[A,B,A,C ...],而不是示例“ABACBABAABBCBABA”。更重要的是,我最终想要使用整数 [1, 4, 3, 1, 4...]
我试过修改代码,但我认为我并不完全理解嵌套循环的逻辑。有人可以帮忙吗?
解决方案
我一直在对原始问题做一些工作,我仍然不明白外循环的原因,但我设法模仿了原始参考脚本(用于数组而不是字符串)。
我想发布它以防其他人发现它有用。我确信这不是最有效的方法,但它似乎有效。如果有人看到其中的漏洞,请务必告知:
def countSubs(total, sub):
totalCount = 0
for i in range(len(total) - len(sub) + 1):
testCount = 0
for j in range(len(sub)):
if sub[j] == total[i + j]:
testCount += 1
if testCount == len(sub):
totalCount += 1
return totalCount
minLength = 3
minCount = 2
test = [1,2,1,3,2,-1,2,-1,2,4,2,4,2,5,2,5,2,5,6,7,-1,7,-1,8,7,6,-1,9,-1,9,8,7,10]
rectDict = {}
for sublen in range(minLength, int(len(test)/minCount)):
for i in range(0, len(test) - sublen):
sub = test[i:i + sublen]
cnt = countSubs(test, sub)
#not necessary to concatenate with commas, but for visual legibility
subText = ''.join(str(e) + ',' for e in sub)
if cnt >= minCount and subText not in recDict:
recDict[subText[:-1]] = cnt
print(rectDict)
推荐阅读
- python - 使用python,如何压缩长查询字符串值?
- javascript - 使用 React 组件处理我网站上的所有文本
- python - Peewee 成功创建了一个新条目,但从 select() 查询中丢失了外键值
- javascript - 尝试但未能创建多个隐藏的 HTML
- asp.net-mvc - 我们可以在 ASP.NET MVC 中进行多次部署而不会丢失网站上的任何请求吗?
- google-apps-script - 保护范围不隐藏但不编辑(Google Apps 脚本)
- python - 读取两行CSV Python之间的列值
- java - 如何修复“找不到符号 MaxOf3 和 MinOf3”错误
- javascript - 使用 React 应用程序不会立即在 Safari 上加载图像
- python-3.x - 如何更新数据类python的值