Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

思想:以第一个字符串为基准,以后地依次和它比较

注意事项: 判断只有一个字符串时,结果是否正确

  1. public String longestCommonPrefix(String[] strs) {
  2. int len = strs.length;
  3. String s="";
  4. if(len==0) return s;
  5. if(len==1) return strs[0];  // 返回只有一个时的结果
  6. int longest= 0;
  7. int i=0;
  8. int j=0;
  9. for(i=0;i<strs[0].length();i++) {
  10. for(j=1;j<len;j++) {  // 至少两项
  11. if(i>=strs[j].length() || strs[j].charAt(i)!=strs[0].charAt(i) )  
  12. break;
  13. }
  14. if(j<len) break;
  15. longest++;
  16. }

return strs[0].substring(0,longest);
}

 

改进:判断如何第j个长度满足条件,则加入到结果中

    1. string longestCommonPrefix(vector<string> &strs) {
    2. int j=0;
    3. int i=0;
    4. int len=strs.size();
    5. if(len==0) return "";
    6. string res;
    7. for(j=0;;j++) {
    8. for(i=0;i<len;i++) {
    9. if(j>=strs[i].size() || strs[i].at(j)!=strs[0].at(j)) break;
    10. }
    11. if(i<len) break;
    12. res+=strs[0].at(j);
    13. }
    14. return res;
    15. }
posted @ 2014-07-04 13:56  purejade  阅读(77)  评论(0)    收藏  举报