题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
分析:
遍历,遇到字符串不同,或者字符串超出遍历的长度就返回。
public class LongestCommonPrefix { public String longestCommonPrefixFun(String[] strArr) { int index = 0; if (strArr.length == 0) { return ""; } int i; for (i = 0; i < strArr[0].length(); i++) { char current = strArr[0].charAt(i); for (String str : strArr) { if (str.length() == i || current != str.charAt(i)) { //str.length() == i表示字符串数组strArr中当前的元素str长度有限,到达其结尾了 //current != str.charAt(i) 表示strArr[0]中当前元素也就是第i个和str的当前元素str第i个不相等 return str.substring(0, i); } } i++; } return strArr[0].substring(0, i); } public static void main(String[] args) { LongestCommonPrefix longestCommonPrefix = new LongestCommonPrefix(); String[] strArr = {"fq12", "fq1", "fq2"}; String result = longestCommonPrefix.longestCommonPrefixFun(strArr); System.out.println(result); } } https://www.jianshu.com/p/e48dd179f760