Leetcode: 最長公共前綴

題目:

編寫一個函數來查找字符串數組中的最長公共前綴。

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

示例 1:

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

示例 2:

輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共前綴。

說明:

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

解法:

        String result = "";
        if (strs.length == 0) { //空數組時候
            return "";
        }
        if (strs.length == 1) {// 數組只有一個元素,就是他本身
            return strs[0];
        }
        String firStr = strs[0];// 取出數組的第一個元素
        boolean isStart = true;
        String temp = "";
        for (int i = 1; i <= firStr.length(); i++) {
            temp = firStr.substring(0, i);// 逐步擴大比較的字符串
            for (int j = 1; j <= strs.length - 1; j++) {
                if (strs[j].startsWith(temp)) {     //只要有一個不是以temp開頭,立即跳出循環
                    isStart = true;
                } else {
                    isStart = false;
                    break;
                }
            }
            if (isStart) {  //如果都是以 temp 開頭,則賦值給 result,否則跳出最外層的循環
                result = temp;
            } else {
                break;
            }
        }
        return result;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章