#LeetCode14. 最長公共字首 @FDDLC

凡我出品,皆屬精品發表於2020-10-18

編寫一個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串 ""。

示例 1:

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

輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
說明:

所有輸入只包含小寫字母 a-z 。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/longest-common-prefix
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

 

Java程式碼:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length == 0) return "";
        String answer = "";
        int charIndex = 0, baseRowLength = strs[0].length();
        for(int rowIndex = 0, rowSum = strs.length; rowIndex < rowSum; rowIndex++) { //下面用第0行作參考,要保證charIndex小於第0行的長度baseRowLength
            if(charIndex >= strs[rowIndex].length() || charIndex >= baseRowLength || strs[rowIndex].charAt(charIndex) != strs[0].charAt(charIndex)) break;
            if(rowIndex == rowSum-1) { //最後一行也比完了,得返回第0行,然後可以比較下一列字元
                rowIndex = -1; //因為經過rowIndex++變成了0,又回到了第0行
                charIndex++; //可以比較下一列字元了
            }
        }
        if(charIndex != 0) answer = strs[0].substring(0, charIndex);
        return answer;
    }

    /*public static void main(String[] args) {
        System.out.println(new Solution().longestCommonPrefix(new String[]{"flower","f","flight"}));
    }*/
}

相關文章