題目
撰寫一個函式來查找字串陣列中的最長公共前綴,
如果不存在公共前綴,回傳空字串 “”,
示例 1:
輸入: [“flower”,“flow”,“flight”]
輸出: “fl”
示例 2:
輸入: [“dog”,“racecar”,“car”]
輸出: “”
解釋: 輸入不存在公共前綴,
說明:
所有輸入只包含小寫字母 a-z ,
思路
1、設定一個候選字串,將字串陣列中的第一個字串設為候選字串,
2、遍歷字串陣列后面的各個字串,分別與候選字串進行比較,從而分別得出它們與候選字串的公共前綴,
3、遍歷結束后,最終得出的候選字串為結果,
4、注意特殊情況,比如字串陣列為空,
代碼實作
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==0) return "";
string s1 = strs[0];
for(int i = 1;i < strs.size();i++){
int j = 0;
string s2 = strs[i];
for(;j<s2.size() && j<s1.size();j++){
if(s1[j]!=s2[j]) break;
}
s1 = s1.substr(0, j);
if(s1 == "") return s1;
}
return s1;
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/233948.html
標籤:其他
上一篇:C語言 | 函式實作比較大小
