LeetCode 14 Longest Common Prefix 解題報告
阿新 • • 發佈:2018-11-28
描述
給定一個字串集合,需要求出這些字串的公共字首
樣例
Input: ["flower","flow","flight"]
Output: "fl"
思路
首先獲得最短字串的長度,按照這個長度進行外層遍歷,之後以此遍歷每個字串,看是否滿足相等的條件。如果採用的是 s[i] == s[i-1]
注意要從1開始遍歷,另外本題需要注意只有一個字串時要返回本身,空集返回空字串。
程式碼
#include <iostream> #include<string> #include <vector> #include <climits> #include<algorithm> using namespace std; class Solution { public: string longestCommonPrefix(vector<string>& strs) { string res = ""; if(strs.size()== 0){return "";} if(strs.size()== 1){return strs[0];} int minlen = INT_MAX; for(int i=0;i<strs.size();i++){ minlen = std::min(minlen,(int)strs[i].size()); } for(int i=0;i<minlen;i++){ for(int j=1;j<strs.size();j++){ if(strs[j][i] != strs[j-1][i]){ return res; } } res += strs[0][i]; } return res; } };