A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© caopengxu 中级黑马   /  2014-7-18 11:13  /  2856 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

找出多个字符串中的最大公共子字符串,如“nbitheimanb”和“itheia”的最大子串是:”ithei”。(C语言)
解题思路:从键盘输入几个字符串,让第一个字符串中的第一个字符和后面几个字符串中的每个字符进行比较,如果都能找到相同的字符,那么再次通过比较,算出相同字符的后面还有几个字符是相同的,记录个数;让第一个字符串中的第二个······最后输出个数最多的子串。

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

10 个回复

倒序浏览
没有啊,你这个思路是最自然的思路了。给你一个可以优化的地方:几个字符串的最长公共子串不可能超过长度最短的那个字符串。因此只要遍历长度最短的那个字符串的所有可能子串,判断是否是其他字符串的子串即可。

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
这样想可以啊
回复 使用道具 举报
fantacyleo 发表于 2014-7-18 12:41
没有啊,你这个思路是最自然的思路了。给你一个可以优化的地方:几个字符串的最长公共子串不可能超过长度最 ...

这个思路不错,感谢。
回复 使用道具 举报

哎,根据这个思路编,我整了一天了,输出还是有问题。
回复 使用道具 举报
这个思路挺好的
回复 使用道具 举报
fantacyleo 发表于 2014-7-18 12:41
没有啊,你这个思路是最自然的思路了。给你一个可以优化的地方:几个字符串的最长公共子串不可能超过长度最 ...

顶一个         
回复 使用道具 举报
这个思路没错,用三个for循环第三个for循环判断条件是字符是否相等
回复 使用道具 举报
王书敏 发表于 2014-7-18 20:04
这个思路没错,用三个for循环第三个for循环判断条件是字符是否相等

奥,那我再研究研究。
回复 使用道具 举报
最简单的办法,通过构造矩阵来解决这个问题。网上搜索一下。
回复 使用道具 举报
受益了,学了一些。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马