最長公共前綴

記錄一下,從今天開始,刷LeetCode的題,期待早日刷完!java

查找字符串數組中的最長公共前綴。若是不存在公共前綴,返回空字符串 ""git

示例 1:github

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

示例 2:數組

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

說明:code

全部輸入只包含小寫字母 a-z 。ip

/**
 * @Author : Yanqiang
 * @Date : 2019/5/17
 * @Param : [strs]
 * @return : java.lang.String
 * @Description :
 *      講解: 先把[第一個]從後往前截取,邊截取邊與[第二個]比較,直到有相同的前綴,存放到prefix,
 *            再拿prefix與後面的幾個字符串邊截取邊,存放到prefix,
 *            最後剩下的,確定是全部字符串共同的前綴,沒有共同前綴的話就回到空字符串了
 */
public static String getCommonPrefix(String[] str) {
    int count = str.length;
    String prefix = "";
    if(count != 0){
        prefix = str[0];
    }
    for(int i=0; i<count; i++){
        //關鍵代碼,不斷的從後往前截取字符串,而後與之相比,直到startsWith()返回true
        while(!str[i].startsWith(prefix)){
            int length = prefix.length();
            prefix = prefix.substring(0, length-1 );
        }
    }
    return prefix;
}

 

LeetCode 所有題目講解與答案,可移步 GitHub:https://github.com/yan-qiang/LeetCode字符串

相關文章
相關標籤/搜索