找出多个字符串中的最大公共子字符串,如“nbitheimanb”和“itheia”的最大子串是:”ithei”。
2015-06-09 23:21
369 查看
#include
<stdio.h>
int main(int argc,constchar * argv[]) {
char a[] = {'n','b','i','t','h','e','i','m','q','n','b'};
char b[] = {'i','t','h','e','i','q'};
int A =sizeof(a);
int B =sizeof(b);
int l =0;//当前最大长度
int L =0;//最大长度
int I = 0;//最大长度的起始位置
for (int i =0; i < A; i++) {
for (int j =
0; j < B; j++) {
for (int k =
0 ; k + j < B; k++) {
if (a[k + i] == b[j + k]) {
l++;
}else{
if (L < l){
L = l;
I = i;
}
l =
0;
break;
}
}
}
}
for (int i =0 ; i < L; i++) {
printf("%c",a[I + i]);
}
return0;
}
<stdio.h>
int main(int argc,constchar * argv[]) {
char a[] = {'n','b','i','t','h','e','i','m','q','n','b'};
char b[] = {'i','t','h','e','i','q'};
int A =sizeof(a);
int B =sizeof(b);
int l =0;//当前最大长度
int L =0;//最大长度
int I = 0;//最大长度的起始位置
for (int i =0; i < A; i++) {
for (int j =
0; j < B; j++) {
for (int k =
0 ; k + j < B; k++) {
if (a[k + i] == b[j + k]) {
l++;
}else{
if (L < l){
L = l;
I = i;
}
l =
0;
break;
}
}
}
}
for (int i =0 ; i < L; i++) {
printf("%c",a[I + i]);
}
return0;
}
相关文章推荐
- 2015060902 - 成就强大的自己,必须坚持做10件事情
- Syncovery : Google Docs protocol completely replaced with Google Drive
- 黑马程序员——Java基础——内部类
- org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block
- 如何让Java类不可变
- 编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间)
- rtc驱动框架分析
- 新闻后台管理
- nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
- C++|C++学习笔记|数据、变量和计算
- mwc飞控配置功能速查
- FFmpeg的HEVC解码器源代码简单分析:解析器(Parser)部分
- 入侵渗透专用的python小脚本
- JSP编译指令和动作指令
- FFmpeg的HEVC解码器源代码简单分析:解析器(Parser)部分
- 2015第24周二Spring事务2
- bzoj 4036 集合幂级数
- MVC
- 【iOS】一不小心破解了别人的静态库
- DM8168 IPNC Boa移植