import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 * @return string字符串 */ public String longestCommonPrefix (String[] strs) { // write code here // 0.处理特殊情况 if (strs.length == 0) { return ""; } if (strs.length == 1) { return strs[0]; } // 1.按照长度从小到大给strs排序 Arrays.sort(strs, (s1, s2) -> s1.length() - s2.length()); // 2.从0位置开始检查strs中所有字符串的情况 int i = 0; boolean flag = true; while (i < strs[0].length() && flag) { // i不越界且没发现不一致 char c = strs[0].charAt(i); for (int j = 1; j < strs.length; j++) { if (strs[j].charAt(i) != c) { // 发现了不一致,则最长公共前缀为strs[0]的0 ~ i-1字符 flag = false; break; } } if (flag) { // 若发现了不一致,则不必让i自增 i++; } } // 3.截取strs[0]的0 ~ i-1字符返回 return strs[0].substring(0, i); } }