首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C中对这个参差不齐的数组/子字符串程序有帮助吗?

在C中对这个参差不齐的数组/子字符串程序有帮助吗?
EN

Stack Overflow用户
提问于 2011-05-17 11:30:09
回答 2查看 551关注 0票数 0

因此,我有一个长度为200的参差不齐的数组(称为名称)。数组中的每个指针都指向一个长度不超过50个字符且没有空格的字符串。我还有一个通过用户输入给出的字符串,叫做inname,长度为50,inname将是存储在名称中的字符串之一。我需要找到一种方法来遍历我的参差不齐的数组中的字符串,并找到与inname重叠的最大子字符串,不包括inname本身,因为它将在文件中。如果没有重叠的字符串,那么我们会输出"no recommendation“。我已经花了好几个小时想弄明白这件事了,有帮助吗?O:)所以基本上,程序会在数组中找到与inname重叠的子字符串最大的名称。将进行编辑,以便在需要时提供附加信息

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-17 12:43:04

这不会使您找到查找重叠的最有效的方法(动态编程是一种方法--还有其他疯狂的方法,如后缀树),但它应该让您开始:

首先,考虑如何在两个字符串的开头对齐时找到重叠的长度。例如,找出这两者之间最长的重叠部分:

代码语言:javascript
运行
复制
programming
ungrammatical

在本例中,只有一个m重叠--长度为1。

然后考虑如何“移动”字符串,并在它们以不同的方式对齐时查找重叠部分。(实际上不要更改字符串:只需更改遍历它们以进行比较的方式。)这两者之间有什么重叠之处?

代码语言:javascript
运行
复制
programming
 ungrammatical

思考如何查看所有可能的对齐方式。如果您跟踪找到的最长字符串,则两个特定字符串之间的对齐长度最长。

在此之后,继续检查所有不同的字符串。跟踪最匹配的那一个,一旦你看完了所有的匹配,你就有了答案。

票数 2
EN

Stack Overflow用户

发布于 2011-05-17 11:41:20

您可能应该从较小的问题开始,即确定infunc和单个字符串之间重叠的大小。

维基百科复习了一些解决longest common substring problem的算法(包括伪代码!)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6025939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档