国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

華為機試在線訓練-牛客網(30)查找兩個字符串a,b中的最長公共子串

2019-11-08 02:14:14
字體:
來源:轉載
供稿:網友

題目描述

查找兩個字符串a,b中的最長公共子串。若有多個,輸出在較短串中最先出現的那個。
輸入描述:
輸入兩個字符串
輸出描述:
返回重復出現的字符
輸入例子:
abcdefghijklmnopabcsafjklmnopqrstuvw
輸出例子:
jklmnop

暴力枚舉,從最長的子串開始找,是的直接跳出輸出,一定是最長而且第一個出現的公共子串。                

#include <iostream>using namespace std;int main(){	string str1,str2;	while(cin>>str1>>str2){		int size1=str1.size();		int size2=str2.size();		string maxSubstr;		if(size1<=size2){			for(int len=size1;len>0;len--){				for(int i=0;i<=size1-len;i++){					string subStr=str1.substr(i,len);					if(str2.find(subStr)!=string::npos){						maxSubstr=subStr;						goto MAXSTR;					}				}			}		}		else{			for(int len=size2;len>0;len--){				for(int i=0;i<=size2-len;i++){					string subStr=str2.substr(i,len);					if(str1.find(subStr)!=string::npos){						maxSubstr=subStr;						goto MAXSTR;					}				}			}		}MAXSTR:	cout<<maxSubstr<<endl;	}	return 0;}另外,這題是道經典的動態規劃例題,先mark下,后面學習了再補DP解法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂宁市| 吴桥县| 长子县| 新民市| 剑阁县| 九江市| 子长县| 常德市| 南丹县| 丰顺县| 淮安市| 新竹县| 连平县| 泗阳县| 西贡区| 随州市| 淳安县| 璧山县| 桃园市| 邢台市| 张家港市| 承德县| 上虞市| 通渭县| 河东区| 道孚县| 林芝县| 皮山县| 宁夏| 绥化市| 新郑市| 郑州市| 和林格尔县| 崇文区| 普安县| 台山市| 陈巴尔虎旗| 丽江市| 苏州市| 中卫市| 金华市|