gpt4 book ai didi

bash - 如何使用 Bash 查找字符串中出现频率最高的子串?

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

请问如何解决以下问题:

如何找到给定字符串中出现次数最多的子串?例如字符串:

acd0a55b171241cc13afc7135acd09d609f9e4928e18908e6f6fb5574b4ac13731f993031a13f

在这个字符串中有子字符串acd0c13。还有子字符串 13 等等。

如何找出所有出现的子串,按字符数排序?

例如:

acd0:4个字符2次

c13: 3个字符2次

13:2 个字符 2 次!

实际上 13 出现了 4 次,但在 c13 中已经出现了两次,因此不允许再次计数。

解决方案应该在 Bash 中。

最佳答案

您需要创建 suffix tree .它是一棵包含给定字符串的所有重复子字符串的树。

创建后缀树最有效的算法是Ukkonen's algorithm

更多信息: Fast String Searching With Suffix Trees

网上有一些针对 C++ 和 Python 的此算法的实现。我不确定直接用 bash 编写它是否容易,但您可以试试。

关于bash - 如何使用 Bash 查找字符串中出现频率最高的子串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586297/

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