leetcode.字符串.14最常公共前缀-Java
Posted les111ley
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode.字符串.14最常公共前缀-Java相关的知识,希望对你有一定的参考价值。
1. 具体题目
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
示例 1: 输入: ["flower","flow","flight"] 输出: "fl"
示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
2. 思路分析
横向搜索:以字符串为单位,检索每个字符串的前缀
纵向搜索:以字符为单位,对于每个位置比较所有字符串,直到遇到不匹配的为止
3. 代码
由于横向与纵向搜索时间复杂度都为O(S),S为数组中字符数量,即最坏情况下都要搜索数组中所有字符,所以只写了横向搜索
1 public String longestCommonPrefix(String[] strs) { 2 //熟悉String类的indexOf(String str)方法和substring(int start,int end)方法 3 //注意substring(int start,int end)返回的子串开始于start,结束于end - 1 4 if(strs.length == 0) return ""; 5 String res = strs[0]; 6 for(int i = 1; i < strs.length; i++){ 7 while(strs[i].indexOf(res) != 0){ 8 res = res.substring(0, res.length() - 1); 9 if(res.equals("")) return ""; 10 } 11 } 12 return res; 13 }
以上是关于leetcode.字符串.14最常公共前缀-Java的主要内容,如果未能解决你的问题,请参考以下文章