Poj基因检测(c++中substr()函数的使用)three

匿名 (未验证) 提交于 2019-12-03 00:32:02

描述:

用一个字符串表示一段基因,例如:“CTATGGGTTT”。两段基因的相似度定义为它们所包含的最大公共子串的长度。例如:“CCTTGG”和“TGGGC”的最大公共子串为“TGG”,它的长度为3,则我们称“CCTTGG”和“TGGGC”的相似度为3。现给定两段基因,要求计算它们的相似度。
关于输入:
输入第一行包含一个正整数N...........
关于输出:
对于每组测试数据输出一行,该行包含一个整数,表示给定基因段的相似度。
输入:
2
CCCCC TTTTTGGGGGCC
ACTGGG DDD

输出:
2

0

实现代码:

#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> using namespace std; int main() { 	string first; 	string second; 	int t,i,j,z,max,ans; 	cin >> t; 	while(t--) 	{ 		ans = 0; 		max = 0; 		cin >> first; 		cin >> second; 		int len = first.length(); 		for(i = 0;first[i] != '\0'; i++) 		{ 			for(z = len - i;z > 0; z--) 			{ 				for(j = 0;second[j] != '\0'; j++) 				{ 					if(first.substr(i,z) == second.substr(j,z)) 					{ 						ans = z; 						if(ans > max) 							max = ans; 					} 				} 			} 		} 		printf("%d\n",max); 	} 	return 0; } 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!