输入3个子串, 输出这3个子串的最大公共子串
2013-03-23 16:46
274 查看
#include <iostream> #include <string> using namespace std; int main() { string s1; string s2; string s3; string *sp1; string *sp2; string *minp; cin>>s1>>s2>>s3; if(s1.length()> s2.length()) { sp1 = &s1; sp2 = &s2; }else { sp1 = &s2; sp2 = &s1; } if(sp2->length()>s3.length()) { minp = &s3; }else { minp = sp2; sp2 = &s3; } int max = 0; int start = 0; int length = minp->length(); for(int i = 0; i < length; ++i ) { int templen = length - i; for(int n = max; n < templen; ++n) { if((sp1->find(minp->substr(i, n))!=string::npos) && (sp2->find(minp->substr(i, n))!= string::npos)) { if(n > max) { max = n; start = i; } }else { break; } } } cout<<minp->substr(start, max); return 0; }
相关文章推荐
- 输入3个子串, 输出这3个子串的最大公共子串 。
- 输入三个字符串,允许有空格,输出最大公共子串 例如输入: what your name my name is ABC
- 问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。 设计: 设计一个类 String,包括一个 len(字符串长度)和字符串指针 s。另有如下成员函数: ·
- C/C++ | 30-27 给定字符串A和B,输出A和B中的最大公共子串
- 给定字符串A和B,输出A和B中的最大公共子串。
- 给定字符串A和B,输出A和B中的最大公共子串。
- 问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。
- 最长公共子串问题(可输出多个子串)
- 输入一个字符串,输出该字符串中最大对称子串的长度
- 输入三个数,输出最大数
- 编程题:用一组数组做函数参数来实现,输入两个数,输出其中最大数
- 蓝桥杯java第八届B组:最大公共子串
- 最大乘积子串-----输出子串和乘积
- C语言:从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出
- 《算法导论》-最大公共子串(连续) C语言版
- 输入5个整数,找出其中最大整数和最小整数所在的位置,并将二者对调,然后输出调整后的5个数。
- 两个或N个字符串最大公共子串算法
- 字符串相似度算法和最大公共子串提取算法
- php获得两个字符串公共最大子串的函数
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离