【python】实例-python实现两个字符串中最大的公共子串
由于python中的for循环不像C++这么灵活,因此该用枚举法实现该算法:
C="abcdefhe"
D="cdefghe" m=0
n=len(C)
E=[]
b=0
while(m<n):
i=n-m
while(i>=0):
E.append(C[m:m+i])
i-=1
m+=1 for x in E:
a=0
if x in D:
a=len(x)
c=E.index(x)
if a > b:#保存符合要求的最长字符串长度和地址
b=a
d=c if b>0:
print E[d]
参照C语言实现方法:
//3.定义一个求最大公共子字符串的函数
void maxChild(char str[],char str1[])
{
//4.定义两个指针变量,用于记录相同的起始地址
char *p,*q;
//5.定义两个整型变量,用于保存最大公共长度
int n=0,m=0;
//6.通过for循环来遍历第一个字符串
for(int i=0;i<strlen(str);i++)
{
//7.通过for循环遍历第二个字符串
for(int j=0;j<strlen(str1);j++)
{
//8.每次比较完两个字符串的公共部分后,都设置m=0
m = 0;
//9.判断两个字符串起始相同,只要一有相同的,就同步进行判断
if(str[i]==str1[j]&&str1[j]!='\0'){
//10.通过同步进行比较公共字符串
for(int k=0;str[k+i]!='\0'&&str1[k+j]!='\0'&&str[k+i]==str1[k+j];k++)
{
//11.记录公共字符个数和第一个匹配的地址
m++;
p = &str[i];
}
if(m>n)
{
//12.保存大地址,和最大个数
q = p;
n = m;
}
}
}
}
//13.判断是否有公共子字符串
if(n>0){
//14.进行输出最大公共子字符串
for(int i=0;i<n;i++){
printf("%c",*(q+i));
}
}else{
printf("没有公共子字符串");
}
}
【python】实例-python实现两个字符串中最大的公共子串的更多相关文章
- 【Java例题】5.5  	两个字符串中最长公共子串
		5. 查找两个字符串中含有的最长字符数的公共子串. package chapter5; import java.util.Scanner; public class demo5 { public st ... 
- java基础知识回顾之---java String final类普通方法的应用之“两个字符串中最大相同的子串”
		/* * 3,两个字符串中最大相同的子串. * "qwerabcdtyuiop" * "xcabcdvbn" * * 思路: * 1,既然取得是最大子串,先看 ... 
- java 算法之  两个字符串中最大相同的子串
		public class String_intern { public static void main(String[] args) { String old="aaaaabc1" ... 
- 求两个字符串的最长公共子串——Java实现
		要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”(子串必须是连续的) public class Main03{ // 求解两个字符号的最长 ... 
- poj 2774 后缀数组 两个字符串的最长公共子串
		Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 31904 Accepted: 12 ... 
- hihocoder-1415 后缀数组三·重复旋律3 两个字符串的最长公共子串
		把s1,s2拼接,求Height.相邻的Height判断左右串起点是否在两个串中,另外对Height和s1.length()-SA[i-1]取min. #include <iostream> ... 
- [URAL-1517][求两个字符串的最长公共子串]
		Freedom of Choice URAL - 1517 Background Before Albanian people could bear with the freedom of speec ... 
- 【poj3294-不小于k个字符串中最长公共子串】后缀数组
		1.注意每两个串之间的连接符要不一样. 2.分组的时候要注意最后一组啊!又漏了! 3.开数组要考虑连接符的数量.100010是不够的至少要101000. #include<cstdio> ... 
- 求两个字符串的最长公共子串(LCS)
		http://tianyunpu2008.blog.163.com/blog/static/6559379920089162236915/ 
随机推荐
- _Python定义方法
			def 定义一个方法 在项目编程中,我们往往要做很多重复的事,比如一个排序的功能(当然Python中内置排序的方法),在编程中,我们肯定是会多次用到这个功能的,如果我们每次都在要用这个功能时,都去写一 ... 
- L1-014 简单题
			这次真的没骗你 —— 这道超级简单的题目没有任何输入. 你只需要在一行中输出事实:This is a simple problem. 就可以了. 输入样例: 无 输出样例: This is a sim ... 
- CUDA  ---- Branch Divergence and Unrolling Loop
			Avoiding Branch Divergence 有时,控制流依赖于thread索引.同一个warp中,一个条件分支可能导致很差的性能.通过重新组织数据获取模式可以减少或避免warp diverg ... 
- apache的日志access_log分析
			正常日志格式:客户端地址 访问者的标识 访问者的验证名字 请求的时间 请求类型 请求的HTTP代码 发送给客户端的字节数 当网站出问题时分析日志,第一步一般都不会是看访问日志.但是也不能忽视它,在 ... 
- Python学习(002)--Python介绍
			一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ... 
- Android 获取联系人和电话号码
			获取联系人和电话号码 private void queryContactPhoneNumber() { String[] cols = {ContactsContract.PhoneLookup.DI ... 
- S3TC IAP15F2K61S2点亮一个发光二极管keil和stc-isp软件操作
			1.安装破解软件 2.打开STC-ISP,找到头文件,选择保存文件 3.找到keil的安装目录,keil/C51/INC 并保存 4.在桌面新建文件夹 5.打开keil 6.找到在桌面上新建的文件夹 ... 
- springboot整合jedisCluster
			maven依赖 springboot整合jedisCluster相当简单,maven依赖如下: <dependency> <groupId>org.springframewor ... 
- pymysql中如何将动态的插入数据库中
			data = { ', 'name': 'zengsf', 'age': 20 } table = 'students' #获取到一个以键且为逗号分隔的字符串,返回一个字符串 keys = ', '. ... 
- liunx系统和其它的基本命令
			1.su 更换用户 2.sudo 管理员权限 3.PATH 4.sudo shutdown -h now 现在关机 sudo shutdown -r now 现在重启 5.kill ... 
