1. 程式人生 > >LeetCode(14. 最長公共字首)

LeetCode(14. 最長公共字首)

演算法描述 :
編寫一個函式來查詢字串陣列中的最長公共字首。

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

示例 1:

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

示例 2:

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

說明:

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

演算法實現 :

Java實現 :

class Solution {
    public String longestCommonPrefix(String[] strs) {

        // 排除[]的情況
        if
(strs.length == 0) { return ""; } // 計算出strs中元素的最小長度 int min = strs[0].length(); for (int i = 0; i < strs.length; i++) { if (strs[i].length() < min) { min = strs[i].length(); } } // 排除strs中有空元素的情況, 如 {"", "egd"}
if (min == 0) { return ""; } StringBuilder res = new StringBuilder(); for (int i = 0; i < min; i++) { char ch = strs[0].charAt(i); // ch記錄第1個元素的第1個字元 // ch依次從第2個元素比較,如果存在不匹配的情況,則返回結束 for (int j = 1; j < strs.length; j++
) { if (ch != strs[j].charAt(i)) { return res.toString(); } } res.append(ch); // 所有元素的第i個字元匹配,記錄之. } return res.toString(); } }