问题描写叙述

给定一个 query 和一个 text 。均由小写字母组成。要求在 text 中找出以相同的顺序连续出如今 query 中的最长连续字母序列的长度。

比如, query为“acbac”。text为“acaccbabb”,那么text中的“cba”为最长的连续出如今query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。

代码思想

1、遍历两字符串的每个元素,遇见同样元素则计算该次同样次数同样元素数目。并与之前最大值比較,遍历结束即得到终于相似元素数目。

2、用vector建立一个二维向量markMatrix,markMatrix[i][j]表示query中第i个字符和text中第j个字符的最长连续字母序列的长度。

源代码实现

#include<iostream>  

using namespace std;  

int len(char *query,char *text)  //求两个字符串的连续公共部分子函数,返回公共字符串长度;
{
int i;
for(i=1;query[i]!='\0'&&text[i]!='\0';i++)
if(query[i]!=text[i])
break;
return(i);
} int main()
{
// char query[100],text[100];
char *query,*text;
int i,j,max=0,lenth=0;
// cout<<"please input query:"<<endl;
// cin>>query;
query = "acbac";
// cout<<"please input text"<<endl;
// cin>>text;
text = "acaccbabb";
for(i=0;query[i]!='\0';i++)
{
for(j=0;text[j]!='\0';j++)
{
if(query[i]==text[j])
{
lenth=len(&query[i],&text[j]);
if(max<lenth)
max=lenth;
//i+=lenth-1;
}
}
}
printf("the longth of the same max string is %d\n",max);
return(max);
}

STL 实现

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int FindMaxLength(string query, string text)
{ int m = query.length();
int n = text.length();
vector<vector<int> > markMatrix(m,vector<int>(n)); // m行n列的矩阵
int i = 0, j = 0; int maxLen = -1;
for (i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (query[i] == text[j])
{
if (i == 0 || j == 0)
{
markMatrix[i][j] = 1;
}
else
{
markMatrix[i][j] = markMatrix[i - 1][j - 1] + 1;
}
}
if (markMatrix[i][j] > maxLen)
maxLen = markMatrix[i][j];
}
}
return maxLen;
}
void main()
{
string query;
string text;
/*
cout << "输入query 和 text : " << endl;
cin >> query;
cin >> text;
*/
query = "acbac";
text = "acaccbabb";
int maxLength = FindMaxLength(query,text);
cout << "最大公共长度为: " <<maxLength<< endl; }

ALBB 找公共最长连续字母序列的长度的更多相关文章

  1. LeetCode 674. Longest Continuous Increasing Subsequence (最长连续递增序列)

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...

  2. [LeetCode] Longest Continuous Increasing Subsequence 最长连续递增序列

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...

  3. [Swift]LeetCode674. 最长连续递增序列 | Longest Continuous Increasing Subsequence

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence (s ...

  4. LeetCode 最长连续递增序列

    给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...

  5. [LeetCode] 674. Longest Continuous Increasing Subsequence 最长连续递增序列

    Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...

  6. leetcode 674. 最长连续递增序列

    1. 题目 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3, ...

  7. LeetCode 674. 最长连续递增序列(Longest Continuous Increasing Subsequence) 18

    674. 最长连续递增序列 674. Longest Continuous Increasing Subsequence 题目描述 给定一个未经排序的整型数组,找到最长且连续的递增序列. Given ...

  8. Leetcode674.Longest Continuous Increasing Subsequence最长连续递增序列

    给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...

  9. Java实现 LeetCode 674 最长连续递增序列(暴力)

    674. 最长连续递增序列 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. ...

随机推荐

  1. vmware克隆centos修改linux mac地址

    故障背景:  在vmware workstation中了完全克隆了一个已经存在的centos的虚拟机,启动之后发现网卡没有启动.于是重启一下network服务,发现提示错误信息“Device eth0 ...

  2. DFS和BFS遍历的问题

    来自https://github.com/soulmachine/leetcode 广度优先搜索 输入数据:没有什么特征,不像dfs需要有递归的性质.如果是树/图,概率更大. 状态转换图:数或者DAG ...

  3. 动态规划--找零钱 coin change

    来自http://www.geeksforgeeks.org/dynamic-programming-set-7-coin-change/ 对于整数N,找出N的所有零钱的表示.零钱可以用S={s1,s ...

  4. linux批量匹配移动文件的方法

    需求 有需要移动的文件名清单 filename.txt filename.txt 内容如下: 15542842 1582457 1282427 1532158 4542457 1582453 6552 ...

  5. SGX技术初探

    一.SGX技术背景 1.1 SGX技术定义 SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)的一个扩展,用于增强软件的安全性.这种方式并不是 ...

  6. Spring Cloud 目录

    Spring Cloud Eureka Spring Cloud Config Spring Cloud Feign Spring Cloud Hystrix Spring Cloud Ribbon ...

  7. 【bzoj1367】[Baltic2004]sequence 可并堆

    题目描述 输入 输出 一个整数R 样例输入 7 9 4 8 20 14 15 18 样例输出 13 题解 可并堆,黄源河<左偏树的特点及其应用>Page 13例题原题 #include & ...

  8. 2017-2018-2 20179204 PYTHON黑帽子 黑客与渗透测试编程之道

    python代码见码云:20179204_gege 参考博客Python黑帽子--黑客与渗透测试编程之道.关于<Python黑帽子:黑客与渗透测试编程之道>的学习笔记 第2章 网络基础 t ...

  9. Use ASP.NET and DotNetZip to Create and Extract ZIP Files

    原文发布时间为:2011-02-16 -- 来源于本人的百度文章 [由搬家工具导入] Published: 11 Feb 2011By: Scott MitchellDownload Sample C ...

  10. 用.net开发wap

    原文发布时间为:2010-08-19 -- 来源于本人的百度文章 [由搬家工具导入] .NET 模板:http://download.csdn.net/source/2631001 WAP应用程序结构 ...