华为测试 公共子串计算

题目标题:

计算两个字符串的最大公共字串的长度,字符不区分大小写

输入两个字符串

输出一个整数

案例输入:asdfas werasdfaswer

案例输出:6

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string str1,str2,temp;
	int m,MaxNum=0,Len;
	cin>>str1>>str2;
	string::size_type index1;
	string::size_type index2;
	for(index1=0;index1!=str1.size();++index1)
	{
		str1[index1]=tolower(str1[index1]);
	}
	for(index2=0;index2!=str2.size();++index2)
	{
		str2[index2]=tolower(str2[index2]);
	}
	for(int j=1;j<=str1.size();++j)
	{
		for(int i=0;i!=str1.size();++i)
		{
			if(i+j<=str1.size())
			{
				temp=str1.substr(i,j);
				m=str2.find(temp);
				if(m!=string::npos)
				{
					Len=temp.size();
					if(Len>MaxNum)
						MaxNum=Len;
				}

			}
		}
	}
	cout<<MaxNum;
	return 0;
}

华为测试 公共子串计算,布布扣,bubuko.com

时间: 2025-02-01 16:00:33

华为测试 公共子串计算的相关文章

华为測试 公共子串计算

题目标题: 计算两个字符串的最大公共字串的长度,字符不区分大写和小写 输入两个字符串 输出一个整数 案例输入:asdfas werasdfaswer 案例输出:6 #include<iostream> #include<string> using namespace std; int main() { string str1,str2,temp; int m,MaxNum=0,Len; cin>>str1>>str2; string::size_type i

【华为OJ】【081-查找两个字符串a,b中的最长公共子串】

[华为OJ][算法总篇章] [华为OJ][081-查找两个字符串a,b中的最长公共子串] [工程下载] 题目描述 查找两个字符串a,b中的最长公共子串 输入描述 输入两个字符串 输出描述 返回重复出现的字符 输入例子 abcdefghijklmnop abcsafjklmnopqrstuvw 输出例子 jklmnop 算法实现 import java.util.Scanner; /** * Author: 王俊超 * Date: 2016-01-04 08:43 * Declaration: A

【华为OJ】【071-公共子串计算】

[华为OJ][算法总篇章] [华为OJ][071-公共子串计算] [工程下载] 题目描述 计算两个字符串的最大公共子串的长度,字符不区分大小写 输入描述 输出描述 输入两个字符串 输入例子 asdfas werasdfaswer 输出例子 6 算法实现 import java.util.Arrays; import java.util.Scanner; /** * Author: 王俊超 * Date: 2016-01-04 15:56 * All Rights Reserved !!! */

华为OJ: 公共字串计算

有几个需要注意的地方,一个这道题是不区分大小写的,所以在计算之前对输入的字符串要做小写或者大写的转换. 第二个,思路一定要清晰,先将s1从[i]处开始与s2的[j]开始匹配,不相等则j++直到j等于s2.length()-1,相等,则i++,j++.注意,这里就是i++,即下次重新开始从s[i]开始匹配时,两次i之间的距离可能会超过1.再j那里设置一个计数器计数即可. import java.util.Scanner; public class findMaxSubStringLength {

华为笔试题--最长公共子串

#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; //最长公共子串 class Solution { public: int longestSubstring(string x, string y) { if (x.size() > y.size()) swap(x, y); // 题目要求短串优先 vect

最长公共子串

(连续) - 阿里笔试[分析+编码] 题目描述:给定一个query和一个text,均由小写字母组成.要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度.例如,query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3.请注意程序效率. [思路]用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0.然后求出对角线最长的1序列,其对应的位置

一天一道算法题(5)---最长公共子串

题目 给定两个字符串str1和str2,返回两个字符串的最长公共子串.例如:str1="1AB2345CD",str2="12345EF",公共子串是"2345" 解析 最长公共子串和最长公共子序列的区别是,子串是连续的,子序列是不连续的. 首先还是要生成动态规划表.生成大小为M*N的矩阵dp.dp[i][j]的含义是,在必须把str1[i]和str2[j]当作公共子串最后一个字符的情况下,公共子串最长能有多长.比如,str1="A12

POJ 3415 Common Substrings (求长度不小于k的公共子串的个数)

Common Substrings Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 10002   Accepted: 3302 Description A substring of a string T is defined as: T(i, k)=TiTi+1...Ti+k-1, 1≤i≤i+k-1≤|T|. Given two strings A, B and one integer K, we define S,

POJ 2774 最长公共子串

对于最长公共子串,n*m的递推显然无法通过本题. 本题是后缀数组的一个基础应用,字符串的子串可以视作后缀的前缀. 我们在两个串间插入一个不在字符集的字符如'#'作为连接,这样做的目的是为了防止两个后缀的最长公共前缀跨过第一个字符串的末尾. 扫描Height数组,如果排名为i的字符串与排名为i-1的字符串来源于原来的2个串,则更新答案最大值. 1 #include <iostream> 2 #include <vector> 3 #include <algorithm>