给定字符串A和B,输出A和B中的最大公共子串。
输入字串一: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) //如果包含最短子串,那么返回shortstring
return 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 cdf
int 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);
else
comman=commanstring(str1, str2);
printf("the longest comman string is: %s\n", comman);
}
给定字符串A和B,输出A和B中的最大公共子串。相关推荐
- 求出2个字符串中的最大公共子串
给定字符串A和B,输出A和B中的最大公共子串. 比如A="aocdfe" B="pmcdfa" 则输出"cdf" void comm ...
- (C语言)素数是指大于1,且只能被1和它自身整除的正整数。现给定一个范围,请输出在此范围中素数的个数。
题目描述: 素数是指大于1,且只能被1和它自身整除的正整数.现给定一个范围,请输出在此范围中素数的个数. 输入: 测试数据有多组,每组单独占一行,包括两个正整数m和n(2≤m,n≤10000),中间用 ...
- 面试宝典_Python.常规算法.0002.输出任意两个字符串中最长公共子串?
面试题目: 1. 用PY实现求任意两个字符串最长的公共子串? 解题思路: 1. 先求出长度最小的字符串,然后遍历其索引,这样可以避免字符串索引溢出,然后判断对应索引的值是否相同,相同的话就加到目标字典 ...
- c语言寻找公共字符串,C语言查找两个字符串中的最大公共子串
#include #include #include char *commonstring(char *str1,char *str2) { int i,j; char *longstr,*short ...
- 1.2、从“生日贺卡”看C++字符串的输入和输出
功能 1.字符串的输入和输出 2.在贺卡中插入字符串 代码 //生日贺卡#include<iostream> //包含头文件,即使用iostream里的程序来用 using namespa ...
- 找出两个字符串的最长公共子串
题目: 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1. 输入描述: 输入包括两行,第一行代表字符串srr1,第二行代表字符串str2. 1 ≤ len ...
- SPOJ - PHRASES Relevant Phrases of Annihilation —— 后缀数组 出现于所有字符串中两次且不重叠的最长公共子串...
题目链接:https://vjudge.net/problem/SPOJ-PHRASES PHRASES - Relevant Phrases of Annihilation no tags You ...
- [Python]获取2个字符串的最长公共子串
原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:https://blog.csdn.net/humanking7/article/details/84645055 文章目录 @[toc] ...
- 给定字符串1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖,输入对应的数字,输出对应的大写
#region 给定字符串"1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖",输入对应的数字,输出对应的大写string str = "1壹 2贰 3叁 4肆 5伍 ...
最新文章
- 自动计算表格html,表格怎么自动计算加减
- Linux学习之系统编程篇:杀死 / 取消线程
- js控制公共模板中,不同页面中的导航选中效果-判断当前的url
- Java多线程并发学习-进阶大纲
- freedos能够编译c语言嘛,Freedos freedos核心源代码包含汇编和C语言代码 - 下载 - 搜珍网...
- 最多分成多少块(51Nod-2502)
- 4.线性和卷积——不同种类的噪声、中值滤波器揭破和实战_5
- 央行发布声纹识别安全应用技术标准,适用手机银行、第三方支付
- 前端面试宝典(2)——JavaScript
- python之路--面向对象之封装
- 凯立德地图导航2020年最新版车载_高精度地图会把自动驾驶带跑偏吗?
- Matplotlib入门详细教程
- android ios av tv,无需Apple TV的AirPlay镜像的顶级4解决方案您应该知道
- C语言也能干大事第十四节(如鹏基础)
- 苹果手机在哪搜索测试版软件,如何在 beta 版软件上测试你的 App
- ASP版MD5加密函数及用法
- 根据正则表达式创建NFA的Thompson算法 python实现
- 什么是对称加密(对称加密简介)
- 利用ECharts实现数据的左右移动
- android 渐变歌词,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果