Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
思想:以第一个字符串为基准,以后地依次和它比较
注意事项: 判断只有一个字符串时,结果是否正确
- public String longestCommonPrefix(String[] strs) {
- int len = strs.length;
- String s="";
- if(len==0) return s;
- if(len==1) return strs[0]; // 返回只有一个时的结果
- int longest= 0;
- int i=0;
- int j=0;
- for(i=0;i<strs[0].length();i++) {
- for(j=1;j<len;j++) { // 至少两项
- if(i>=strs[j].length() || strs[j].charAt(i)!=strs[0].charAt(i) )
- break;
- }
- if(j<len) break;
- longest++;
- }
return strs[0].substring(0,longest);
}
改进:判断如何第j个长度满足条件,则加入到结果中
- string longestCommonPrefix(vector<string> &strs) {
- int j=0;
- int i=0;
- int len=strs.size();
- if(len==0) return "";
- string res;
- for(j=0;;j++) {
- for(i=0;i<len;i++) {
- if(j>=strs[i].size() || strs[i].at(j)!=strs[0].at(j)) break;
- }
- if(i<len) break;
- res+=strs[0].at(j);
- }
- return res;
- }

浙公网安备 33010602011771号