資料結構演算法題/最長公共字首
阿新 • • 發佈:2018-11-19
題目:
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 ""。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
分析:
遍歷,遇到字串不同,或者字串超出遍歷的長度就返回。
public class LongestCommonPrefix { public String longestCommonPrefixFun(String[] strArr) { int index = 0; if (strArr.length == 0) { return ""; } int i; for (i = 0; i < strArr[0].length(); i++) { char current = strArr[0].charAt(i); for (String str : strArr) { if (str.length() == i || current != str.charAt(i)) { //str.length() == i表示字串陣列strArr中當前的元素str長度有限,到達其結尾了 //current != str.charAt(i) 表示strArr[0]中當前元素也就是第i個和str的當前元素str第i個不相等 return str.substring(0, i); } } i++; } return strArr[0].substring(0, i); } public static void main(String[] args) { LongestCommonPrefix longestCommonPrefix = new LongestCommonPrefix(); String[] strArr = {"fq12", "fq1", "fq2"}; String result = longestCommonPrefix.longestCommonPrefixFun(strArr); System.out.println(result); } }https://www.jianshu.com/p/e48dd179f760