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

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

算法6:返回一組字符串的最長公共前綴

2019-11-06 06:33:09
字體:
來源:轉載
供稿:網友

問題描述

返回一組字符串的最長公共前綴,如 “abc”, “abcdef”, “abcd”, 則返回”abc”。

解題思路

首先最長公共前綴肯定小于或者等于最短字符串,設第一個字符串為公共字符串,公共字符串長度為第一個字符串的長度,遍歷其他公共字符串,如果其他公共字符串比第一個字符串短,則公共字符串取較短的長度,如果其他字符串的字符不等于第一個字符串的字符,則退出比較,從而得當當前結果的公共字符串,以此類推,直至遍歷除第一個字符串的其他字符串。

c++代碼

string GetCommonPRefix(vector<string>& strs){ string commonStr = ""; int commonStrLen = 0; if(strs.size() <= 1) { return ""; } //設第一個字符串就是公共字符串 commonStr = strs[0]; commonStrLen = commonStr.length(); for (int i = 1; i < strs.size(); i++) { if(commonStrLen > strs[i].length()) { commonStrLen = strs[i].length(); } for(int j = 0; j < commonStrLen; j++) { if(commonStr[j] != strs[i][j]) { commonStrLen = j; break; } } commonStr = strs[i].substr(0,commonStrLen); } return commonStr;}

測試代碼

int _tmain(int argc, _TCHAR* argv[]){ vector<string> strs; strs.clear(); cout<<"please input 6 string:"<<endl; string temp; for(int i = 0; i < 6; i++) { cin>>temp; strs.push_back(temp); } string commonStr = GetCommonPrefix(strs); cout<<"common prefix string is "<<commonStr<<endl; return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赣榆县| 吐鲁番市| 万盛区| 余干县| 福海县| 兴业县| 宿州市| 凤翔县| 长海县| 崇信县| 巴楚县| 北川| 光山县| 宝兴县| 花莲县| 永善县| 龙州县| 枝江市| 河间市| 三江| 中江县| 新津县| 呼和浩特市| 新宁县| 兖州市| 苏尼特左旗| 油尖旺区| 沅江市| 开封市| 城口县| 温泉县| 嘉黎县| 香格里拉县| 巫溪县| 孙吴县| 洛隆县| 大方县| 井陉县| 磐安县| 固始县| 马山县|