LeetCode 14 演算法 最長公共字首(簡單)

2021-10-06 12:04:21 字數 1175 閱讀 9870

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

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

示例 1:

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

輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]

輸出: ""

解釋: 輸入不存在公共字首。

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

審題:最長公共字首。

思考:暴力法,迴圈遍歷各個字元,對比。

解題:

public string test0304(string star) 

string first = star[0];

for (int i = 1; i < star.length; i++)

} return first;

}

方法二:

// 、縱向掃瞄:從下標0開始,判斷每乙個字串的下標0,判斷是否全部相同。直到遇到不全部相同的下標。時間效能為o(n*m)。

public string longestcommonprefix_2(string strs)

} return strs[0];

}

第三:

public string longestcommonprefix_3(string strs) 

private string longestcommonprefix(string strs, int l, int r) else

}//commmon 共同的 prefix 字首

string commonprefix(string left, string right)

return left.substring(0, min);

}

二分查詢:

public string longestcommonprefix(string strs) 

return strs[0].substring(0, (low + high) / 2);

}private boolean iscommonprefix(string strs, int len)

知識點:

題目本身不難,但解題思路比較

LeetCode14最長公共字首

編寫乙個函式來查詢字串陣列中最長的公共字首字串。例如 輸出 ab 比較乙個字串陣列的最長公共字首,遍歷整個字串陣列,建立乙個字串用來儲存當前最長公共字串,逐個比較,不斷更新公共字串內容。情況比較多,考慮周全,不然可能會陣列溢位。公共字串的長度和當前比較字串的長度大小的比較,避免陣列越界,還有空字串的...

LeetCode 14 最長公共字首

編寫乙個函式來查詢字串陣列中最長的公共字首字串。用第乙個字串s,比較strs的每個字串的公共字首,並記錄字首有m位,之後輸出s的前m位字元即可。但是在輸出過程中,使用了如下的賦值方式 for int i 0 i m i ans i s i 在string型別中,內部的成員是private的,所以不能...

LeetCode14 最長公共字首

題目描述 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母a z。如下 class solutio...