这道题我做的不太好,虽然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; } };