最長公共前綴

題目

編寫一個函數來查找字符串數組中的最長公共前綴。數組

若是不存在公共前綴,返回空字符串 「」。bash

示例 1:
輸入: [「flower」,「flow」,「flight」]
輸出: 「fl」

函數

示例 2:
輸入: [「dog」,「racecar」,「car」]
輸出: 「」
解釋: 輸入不存在公共前綴。


spa

說明:
全部輸入只包含小寫字母 a-z 。
code

思路

一、設定一個候選字符串,將字符串數組中的第一個字符串設爲候選字符串。
二、遍歷字符串數組後面的各個字符串,分別與候選字符串進行比較,從而分別得出它們與候選字符串的公共前綴。
三、遍歷結束後,最終得出的候選字符串爲結果。
四、注意特殊狀況,好比字符串數組爲空。


字符串

代碼實現

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;
    }
};
相關文章
相關標籤/搜索