国产探花免费观看_亚洲丰满少妇自慰呻吟_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解法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 元阳县| 辰溪县| 井冈山市| 荆州市| 陇川县| 高唐县| 岐山县| 阿拉善右旗| 卢龙县| 若尔盖县| 霍邱县| 中卫市| 锡林浩特市| 宾川县| 聂荣县| 永修县| 东辽县| 棋牌| 丹寨县| 商城县| 武安市| 祁门县| 布拖县| 怀宁县| 望奎县| 六枝特区| 浠水县| 萝北县| 大洼县| 嘉祥县| 靖州| 云林县| 彰武县| 浑源县| 灯塔市| 米脂县| 徐汇区| 栾川县| 石柱| 莆田市| 墨脱县|