1. 程式人生 > >LeetCode 14. Longest Common Prefix

LeetCode 14. Longest Common Prefix

color pan solution 裏的 string 內容 自己的 所有 一定的

Write a function to find the longest common prefix string amongst an array of strings.

題目的描述很簡單,就是求多個字符串公共前綴,其實可以考慮先對字符向量用sort()進行排序,然後從前向後遍歷,復雜度為O(S) + O(n*logn),n是字符串的數量,S為整個字符向量中所有的字符數量,這也就是“橫向遍歷”。

我在這裏采用的是“縱向遍歷”,也就是先比較每個字符串第一個字符,在比較每個字符串第二個字符……以此類推,設定一定的終止條件,然後返回公共前綴,代碼如下:

 1 class Solution {
2 public: 3 string longestCommonPrefix(vector<string>& strs) { 4 //經過自己的思考以及參考別人的代碼,我最終得到了這一版本 5 if (strs.size()==0) return ""; 6 for (int i=0; i<strs[0].length(); i++) 7 for (int j=0; j<strs.size(); j++) 8 if (strs[0][i]!=strs[j][i]) //
這裏的if語句裏面的內容其實沒必要太過於復雜,只需要寫一條這樣的判斷就夠了 9 return strs[0].substr(0, i); 10 return strs[0]; 11 } 12 };
  • 時間復雜度:O(S),S為字符向量中所有字符數量
  • 空間復雜度:O(1)

LeetCode 14. Longest Common Prefix