編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 ""。
阿新 • • 發佈:2020-08-14
編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 ""。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共字首。
思路很簡單!先利用Arrays.sort(strs)為陣列排序,再將陣列第一個元素和最後一個元素的字元從前往後對比即可!
public class Main { public static String replaceSpace(String[] strs) { // 如果檢查值不合法及就返回空串 if (!checkStrs(strs)) { return ""; } // 陣列長度 int len = strs.length; // 用於儲存結果 StringBuilder res = new StringBuilder(); // 給字串陣列的元素按照升序排序(包含數字的話,數字會排在前面) Arrays.sort(strs); int m = strs[0].length(); int n = strs[len - 1].length(); int num = Math.min(m, n); for (int i = 0; i < num; i++) { if (strs[0].charAt(i) == strs[len - 1].charAt(i)) { res.append(strs[0].charAt(i)); } else break; } return res.toString(); } private static boolean chechStrs(String[] strs) { boolean flag = false; if (strs != null) { // 遍歷strs檢查元素值 for (int i = 0; i < strs.length; i++) { if (strs[i] != null && strs[i].length() != 0) { flag = true; } else { flag = false; break; } } } return flag; } // 測試 public static void main(String[] args) { String[] strs = { "customer", "car", "cat" }; // String[] strs = { "customer", "car", null };//空串 // String[] strs = {};//空串 // String[] strs = null;//空串 System.out.println(Main.replaceSpace(strs));// c } }