【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/
随机推荐
- 深入理解$watch ,$apply 和 $digest --- 理解数据绑定过程——续
Angular什么时候不会自动为我们$apply呢? 这是Angular新手共同的痛处.为什么我的jQuery不会更新我绑定的东西呢?因为jQuery没有调用$apply,事件没有进入angular ...
- 使用iview-project 打包build报错,ERROR in xxxxx.cheunk.js from UglifyJs
一.iview-project 为iview官方推荐工程,一个基于iview的vue脚手架 github网址:https://github.com/iview/iview-project 废话不多说 ...
- 15年-ICPC长春-网络赛
ID name status one word POJ 5437 Alisha’s Party 赛后AC. 优先队列,模拟.对时间t排序 POJ 5438 Ponds 赛后AC 循环链表 POJ 5 ...
- Awk 从入门到放弃 (6) Awk模式(Pattern)之二
第一题:从/etc/passwd 匹配以 vmuser开头的用户 grep “^vmuser” /etc/passwd -r -n awk ‘/^vmuser /{print $0}’ / ...
- docker 部署 flask(二)编写及生成镜像。
简介: 上一篇文章,我们简单的测试了一下服务器环境和docker基础镜像.并没有涉及我们自己编写的flask python程序. 现在,我们就要把我们自己的flask程序,放进docker镜像. 但是 ...
- 《Python》 文件操作
一.文件操作基本流程: 1.文件基本操作初识: 打开文件: 文件句柄 = open(‘文件路径’,‘编码方式’,‘打开方式’) 第一种:f = open('d:\'a.txt',encoding='u ...
- kbmMW TkbmMWHashSHA256与Delphi 10.2 THashSHA2算出相同的结果
procedure TForm2.Button3Click(Sender: TObject); var hashed:string; begin hashed:=TkbmMWHashSHA256.Ha ...
- [LeetCode&Python] Problem 589. N-ary Tree Preorder Traversal
Given an n-ary tree, return the preorder traversal of its nodes' values. For example, given a 3-ary ...
- poj-1112 (二分图染色+dp分组)
#include <iostream> #include <algorithm> #include <cstring> using namespace std; ; ...
- BZOJ1076: [SCOI2008]奖励关【状压DP+期望DP】
Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物, 每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的 ...