编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]输出: "fl"复制代码
示例 2:
输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。复制代码
说明:
所有输入只包含小写字母 a-z 。
public String longestCommonPrefix(String[] strs) { if( strs == null || strs.length < 1 ) return ""; if( strs.length == 1 ) return strs[0]; int min = Integer.MAX_VALUE; for( int i = 0 ; i < strs.length; i++ ){ min = Math.min( min , strs[i].length()); } for(int i = 1 ; i <= min; i++ ){ String sub = strs[ 0 ].substring( 0 , i ); for( int j = 1; j < strs.length; j ++ ){ if( ! strs[j].substring( 0 , i).equals( sub ) ){ return sub.substring( 0 , i -1); } } } return strs[0].substring(0 , min);}解体思路: 先求出数组中最短字符串的长度从1 到 min 长度取子串, 如果出现子串不一致,则返回 当前长度减一的子串如果全部都一样,则在最后返回长度为min的字串复制代码