ALBB 找公共最长连续字母序列的长度
问题描写叙述
给定一个 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 找公共最长连续字母序列的长度的更多相关文章
- LeetCode 674. Longest Continuous Increasing Subsequence (最长连续递增序列)
Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...
- [LeetCode] Longest Continuous Increasing Subsequence 最长连续递增序列
Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...
- [Swift]LeetCode674. 最长连续递增序列 | Longest Continuous Increasing Subsequence
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (s ...
- LeetCode 最长连续递增序列
给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...
- [LeetCode] 674. Longest Continuous Increasing Subsequence 最长连续递增序列
Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...
- leetcode 674. 最长连续递增序列
1. 题目 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3, ...
- LeetCode 674. 最长连续递增序列(Longest Continuous Increasing Subsequence) 18
674. 最长连续递增序列 674. Longest Continuous Increasing Subsequence 题目描述 给定一个未经排序的整型数组,找到最长且连续的递增序列. Given ...
- Leetcode674.Longest Continuous Increasing Subsequence最长连续递增序列
给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...
- Java实现 LeetCode 674 最长连续递增序列(暴力)
674. 最长连续递增序列 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. ...
随机推荐
- BugKu 杂项-这么多数据包
前边的都是些无关紧要,只要有点网络的基础我想应该都能懂,往下看,一直到NO104,这是在干什么? 源ip138一直向目标ip159发送syn握手包,想要建立连接,其实就是端口扫描,原理就是,想和你某个 ...
- python学习-- 在django中,执行原始sql语句
from django.shortcuts import render, redirect from news.models import Article, Column def test(reque ...
- 带线表格据gt生成无线表格
json解析练习,python图像处理练习,表格包围框毛刺问题待解决. # -*- coding: utf-8 -*- # coding: utf-8 from PIL import Image, I ...
- spaCy 并行分词
spaCy 并行分词 在使用spacy的时候,感觉比nltk慢了许多,一直在寻找并行化的方案,好在找到了,下面给出spaCy并行化的分词方法使用示例: import spacy nlp = spacy ...
- Leetcode 553.最优除法
最优除法 给定一组正整数,相邻的整数之间将会进行浮点除法操作.例如, [2,3,4] -> 2 / 3 / 4 . 但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级.你需要找出怎么添 ...
- 聊聊、RabbitMQ 配置文件
windows 下面安装 rabbitMQ 比较简单,但是想去改端口相关信息却找不到配置文件在哪.Linux 在 /etc/rabbitmq/rabbitmq.config 下面就可以找到.来看看 w ...
- TOJ 3750: 二分查找
3750: 二分查找 Time Limit(Common/Java):3000MS/9000MS Memory Limit:65536KByteTotal Submit: 1925 ...
- sql cte的使用
cte是可以连续使用的,多个cte用逗号隔开,但是只能有一个with 百度文章标题:Sql server中使用with as 提高性能+高效分页
- C#中的is和as的转型区别
摘自CLR via C#第三版第四章 在c#中is可以用来判断一个对象是否兼容给定的类型,如果是返回true,否则返回false. 同时is是永不会抛出异常的.如果对象引用是null,is操作符总是返 ...
- tcp协议 tcpip协议 http协议,IP,DNS,端口号
每当看到HTTP协议,tcp/ip协议,TCP协议总是蒙圈:在这里先记录一下,方面自己查看 TCP协议:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接 ...