Write a function to find the longest common prefix string amongst an array of strings.
Analysis:
Scan from the first character, if it is same to all strings, then scan the second one until meet the different or null.
c++
string longestCommonPrefix(vector<string> &strs) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (strs.empty()){return "";}
string str = strs[0];
int i;
for (i=0;i<str.size();i++){
bool fl=true;
for (int j=0;j<strs.size();j++){
if (strs[j][i]!=str[i]) {fl=false; break;}
}
if (fl==false){return str.substr(0,i);}
}
return str.substr(0,i);
}java
public String longestCommonPrefix(String[] strs) {
if(strs.length == 0) return "";
boolean flag = true;
for(int i=0;i<strs[0].length();i++){
for(int j=0;j<strs.length;j++){
if(i>=strs[j].length() || strs[0].charAt(i)!=strs[j].charAt(i)){
flag = false;
break;
}
}
if(!flag) return strs[0].substring(0,i);
}
return strs[0];
}

本文介绍了一种寻找多个字符串中最长公共前缀的算法,并提供了C++和Java两种实现方式。该算法通过逐字符比较来确定公共前缀,直至遇到不同字符或字符串结束。
878

被折叠的 条评论
为什么被折叠?



