Wednesday, February 12, 2014

Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.
public class Longest_common_prefix {
 public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) {
         return "";
        }

        int len = findShortestStr(strs);
        String result = "";
        boolean flag = true;
        for (int i = 0; i < len; i++) {
         char tmp = strs[0].charAt(i);
         result += tmp;
         for (String word: strs) {
          if (word.charAt(i) != tmp) {
           result = result.substring(0, i);
           flag = false;
           return result;
          }
         }
        }
        if (flag) {
         return result;
        }
        return "";
        
    }
 
 public int findShortestStr(String[] strs) {
  int len = strs[0].length();
  for (int i = 0; i < strs.length; i++) {
   if (strs[i].length() < len) {
    len = strs[i].length();
   }
  }
  return len;
 }
 
}

No comments:

Post a Comment