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的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:最长公共前缀14

leetcode-14.最长公共前缀(图)

LeetCode14:最长公共前缀

python(leetcode)-14最长公共前缀

leetcode14-最长公共前缀

leetcode14-最长公共前缀