題目
編寫一個函數來查找字符串數組中的最長公共前綴。數組
若是不存在公共前綴,返回空字符串 「」。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; } };