2、最長公共前綴
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 “”。
示例1
輸入: ["flower","flow","flight"]
輸出: "fl"
示例2
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z
。
Solution
class Solution {
public:string longestCommonPrefix(vector<string>& strs) {string str="";int i=0;int over=0;if(strs.size()==0)return str;if(strs.size()==1)return strs[0];while(1){for(int j=1;j<strs.size();j++){if(i==strs[j].size()){over=1;break;}if(strs[j][i]==strs[0][i]){if(j==strs.size()-1){str+=strs[0][i];i++;}elsecontinue;}else{over=1;break;}}if(over)return str;}}
};
解題思路:
針對輸入的字符串組存在的特殊情況進行特殊處理,如果沒有字符串,則直接返回空,如果只有一個字符串,則直接將該字符串返回即可。
其余情況,設兩個變量,分別代表橫向和縱向,以第一個字符串做參考,檢查其余字符串,有以下情況時可結束檢查,并返回。1、橫向變量的值超過某一字符串的最長長度;2、縱向比較時發現不相等的情況;如果字符比較相等,且到達最后一個字符串,則更新返回字符串,繼續進行比較。
大神的做法;
vector用法