toastbin / DailyProblems

LeetCode
10 stars 2 forks source link

45.最长公共前缀 #46

Open toastbin opened 5 years ago

toastbin commented 5 years ago

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"
示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

WaNgLu001 commented 5 years ago
package Algroithm;

public class LongPrefix_14 {
    public static void main(String[] args) {
        String strs[] = {
                "c","c"
        };
        System.out.println(longestCommonPrefix(strs));
    }

     public static String longestCommonPrefix(String[] strs) {
         if(strs.length==0)
             return "";
         if(strs.length==1)
             return strs[0];
         String str1 =Prefix(strs[0],strs[1]);  

         for(int i=1;i<strs.length;i++) {
             str1 = Prefix(str1,strs[i]);
         }

         return str1;

     }
     public static String Prefix(String str1,String str2) {
         int minLong = Math.min(str1.length(), str2.length());
         if(minLong==0)
             return "";
         int i;
         for( i =minLong;i>0;i--) {
             if(str1.substring(0,i).equals(str2.substring(0, i))) {
                 break;
             }
         }
         return str1.substring(0, i);

     }
}