题解 | #最长公共前缀#
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 * @return string字符串 */ public String longestCommonPrefix (String[] strs) { // write code here if(strs.length==0 || strs==null){ return ""; } String pubStr = strs[0]; for (int i = 0; i < strs.length; i++) { //题目的意思查找所有字符串中最大的字符,所以先随便找两个对比,返回这两个匹配的地方与第三个对比,再根据与第三个最大的公共地方与第四个匹配,以此类推 pubStr = matchPrefix(pubStr, strs[i]); } return pubStr; } private String matchPrefix(String fix,String str){ //fix是前面对比的最大匹配字符串,所以后续的对比都不可能长度会超过fix int i = 0; while (i< fix.length() && i< str.length() && fix.charAt(i) == str.charAt(i)){ i++; } return fix.substring(0,i); } }