1. 程式人生 > >Leetcode 字串陣列的最長公共字首

Leetcode 字串陣列的最長公共字首

public String longestCommonPrefix(String[] strs){
        if(strs == null || strs.length==0) return "";

        String prifex = strs[0];        // 預設將第一個認為是最長共同

        for(int i=1;i<strs.length;i++){
            // 將當前最長共同字串和當前陣列中的對比,把小的那個作為長度
            int len = prifex.length()>strs[i].length() ? strs[i].length():prifex.length();

            int
j=0; for(j=0;j<len;j++){ // 逐個字元比較,不等的時候退出 if(prifex.charAt(j)!=strs[i].charAt(j)) break; } // 退出的j即當前的最小,整個遍歷結束後就是整個的最小了 prifex = prifex.substring(0,j); } return prifex; }

反思:

預設先將第一個認為是最長的共同字首,然後再for迴圈,用三木運算子來選個更小的,逐個比較,不等就break,退出時的j是當前最小的,整個遍歷介紹的時候就是最小的,最後用 prifex.substring(0,j)