From a83429a6b794491f269fccaa74b710ca4abc514b Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Wed, 6 Sep 2023 15:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Solution.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/solution/Solution.java | 70 +++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/src/solution/Solution.java b/src/solution/Solution.java index 89dabdd..d09cd89 100644 --- a/src/solution/Solution.java +++ b/src/solution/Solution.java @@ -106,33 +106,55 @@ public class Solution { System.out.println(result); } +// public static String longestCommonPrefix(String[] strs) { +// int index = 0; +// StringBuilder temp = new StringBuilder(); +// if (strs != null){ +// for (int k = 0; k < strs[0].length(); k++) { +// char indexChar = strs[0].charAt(index); +// if (strs.length == 1){ +// return strs[0]; +// } +// for (int i = 1; i < strs.length; i++) { +// if (strs[i] != ""){ +// for (int j = 0; j < 1; j++) { +// if (index >= strs[i].length()){ +// return String.valueOf(temp); +// } +// char crrChar = strs[i].charAt(index); +// if (indexChar != crrChar){ +// return String.valueOf(temp); +// } +// if (i == strs.length- 1){ +// temp.append(crrChar); +// index++; +// } +// } +// } else { +// return ""; +// } +// } +// } +// return String.valueOf(temp); +// } +// return ""; +// } + public static String longestCommonPrefix(String[] strs) { - // ["flower","flow","flight"] - int maxPrefix = 0; - int index = 0; - StringBuilder temp = new StringBuilder(); - if (strs != null){ - for (int k = 0; k < strs[0].length(); k++) { - char indexChar = strs[0].charAt(index); - for (int i = 1; i < strs.length; i++) { - if (strs[i] != ""){ - for (int j = 0; j < 1; j++) { - char crrChar = strs[i].charAt(index); - if (indexChar != crrChar){ - return String.valueOf(temp); - } - if (i == strs.length- 1){ - temp.append(crrChar); - index++; - } - } - } else { - return ""; - } + if (strs == null || strs.length == 0) { + return ""; + } + int length = strs[0].length(); + int count = strs.length; + for (int i = 0; i < length; i++) { + char c = strs[0].charAt(i); + for (int j = 1; j < count; j++) { + if (i == strs[j].length() || strs[j].charAt(i) != c) { + return strs[0].substring(0, i); } } - } - return ""; + return strs[0]; } + }