给定字符串A和B,输出A和B中的最大公共子串。
来源:互联网 发布:百度慧眼数据 编辑:程序博客网 时间:2024/06/05 10:02
输入字串一:aocdfe 字串二:pmcdfa输出:cdf
直接贴加了注释后的代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include <iostream>using namespace std;char *commanstring(char shortstring[], char longstring[]){int i, j;char *substring=(char*)malloc(256);if(strstr(longstring, shortstring)!=NULL) //如果包含最短子串,那么返回shortstringreturn shortstring; for(i=strlen(shortstring)-1;i>0; i--) //否则,开始循环计算{for(j=0; j<=strlen(shortstring)-i; j++){memcpy(substring, &shortstring[j], i);substring[i]='\0'; //这里杜绝了覆盖重叠的部分,‘\0后的内容不输出’cout<<substring<<" ";if(strstr(longstring, substring)!=NULL)return substring;}cout<<endl;}return NULL;}/// 输入字串一:aocdfe 字串二:pmcdfa///下面为寻找的方法/// 第一轮: aocdf ocdfe /// 第二轮: aocd ocdf cdfe /// 第三轮: aoc ocd cdfint main(){char *str1=(char*)malloc(256);char *str2=(char*)malloc(256);char *comman=NULL;gets(str1);gets(str2);if(strlen(str1)>strlen(str2)) //将短的字符串放前面comman=commanstring(str2, str1);elsecomman=commanstring(str1, str2);printf("the longest comman string is: %s\n", comman);}
0 0
- 给定字符串A和B,输出A和B中的最大公共子串。
- 给定字符串A和B,输出A和B中的最大公共子串。
- C/C++ | 30-27 给定字符串A和B,输出A和B中的最大公共子串
- 查找两个字符串a,b中的最长公共子串
- 查找两个字符串a,b中的最长公共子串
- 查找两个字符串a,b中的最长公共子串
- 查找两个字符串a,b中的最长公共子串
- 求两个字符串a,b中的最长公共子串
- 查找两个字符串a,b中的最长公共子串
- 查找两个字符串a,b中的最长公共子串
- 查找两个字符串a,b中的最长公共子串
- 给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置
- 华为OJ 公共字串计算&&查找两个字符串a,b中的最长公共子串
- 查找两个字符串a,b的最长公共子串
- 【华为oj】oj2034查找两个字符串a,b中的最长公共子串
- 华为(8)查找两个字符串a,b中的最长公共子串
- 华为练习--查找两个字符串a,b中的最长公共子串
- 华为OJ测试--查找两个字符串a,b中的最长公共子串
- 五.控件--导航控制器
- android之handler的刨根问底
- iOS 第三方框架-MJExtension的使用
- uvalive 3644 X-Plosives(并查集)
- 【Maven进阶四】Windows系统上Maven的安装
- 给定字符串A和B,输出A和B中的最大公共子串。
- 广播获取短信内容进行锁屏等操作
- 直接插入排序
- OpenJudge 1.11-05 派
- 警察和厨师
- C++栈和堆原理介绍
- 【Node.js】mongoose教程01--工程搭建
- c++第四次实验
- ACM天梯赛练习L1-017. 到底有多二