这道题我做的不太好,虽然AC了,但是因为要急着去吃饭,所以就不优化了- -
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string ""
.
Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z
.
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string str= "";
if(strs.size() == 0) //判断vector是不是空的
return str;
int flag = 0,num = 0, n = strs[0].length();
int len = strs[0].length();
for(int i = 0; i < strs.size(); i++){ //判断有无空的字符串,并且取 len 为最小的字符串的长度
if(strs[i].length() == 0)
return str;
if(strs[i].length() < len)
len = strs[i].length();
}
while( ! flag && num <= len){
char c = strs[0][num];
for(int i = 1; i < strs.size(); i++){
if(strs[i][num] != c){
flag = 1;
break;
}
}
if(flag == 0){
str = str + c;
num ++;
}
}
return str;
}
};