思想:
第1个到第n-1个串依次与第0个串比较,不断缩小最长前缀的长度数。
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
if(strs.size() == 0) return "";
size_t rightMax = strs[0].size();
for(size_t i = 1; i < strs.size(); i++) {
for(size_t j = 0; j < rightMax; j++) {
if(strs[i][j] != strs[0][j]) {
rightMax = j;
}
}
}
return strs[0].substr(0, rightMax);
}
};
java code:
public class Solution {
/**
* @param strs: A list of strings
* @return: The longest common prefix
*/
public String longestCommonPrefix(String[] strs) {
// write your code here
if(strs.length == 0) return "";
int rightMax = strs[0].length();
for(int i = 1; i < strs.length; ++i) {
for(int j = 0; j < rightMax; ++j) {
if(j >= strs[i].length()) {
rightMax = strs[i].length();
break;
}
if(strs[i].charAt(j) != strs[0].charAt(j)) {
rightMax = j;
// break;
}
}
}
return strs[0].substring(0, rightMax);
}
}