1. 题目
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
。
2. 示例
示例1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
3. 题解
采用的思想很简单,纵向扫码,匹配每个字符串的第i个字符是否相等。相等继续;不等直接返回之前的。
时间复杂度:O(mn),m为字符串个数,n为最短字符串长度。
4. 实现
1 public class LongestCommonPrefix14 { 2 // 判断第i个字符是否相等 3 public String longestCommonPrefix(String[] strs) { 4 if(strs.length <= 1) return strs[0]; 5 int i = 0; 6 while (i <= 200) { 7 for(int j = 1; j < strs.length; j++) { 8 if(i < strs[0].length()) { 9 char str0 = strs[0].charAt(i); 10 if (i >= strs[j].length() || strs[j].charAt(i) != str0) { 11 return strs[0].substring(0, i); 12 } 13 } else { 14 return strs[0].substring(0, i); 15 } 16 } 17 i++; 18 } 19 return ""; 20 } 21 22 public static void main(String[] args) { 23 // String[] strs = {"flower","flow","flight"}; 24 // String[] strs = {"dog","racecar","car"}; 25 //String[] strs = {"a", "a"}; 26 String[] strs = {"a"}; 27 System.out.println(new LongestCommonPrefix14().longestCommonPrefix(strs)); 28 } 29 }
5. 结语
努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!
如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。