14_最长公共前缀_LongestCommonPrefix

问题链接

题目

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"
示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:

所有输入只包含小写字母 a-z 。

解题思路

需要一个字符串作为模板,判断后面的字符串是否以这个模板为前缀,如果判断为false,则将模板字符串去掉最后一位再比较,如果任然为false,则再删去一位,递归调用至判断为true。这里使用的是第一个字符串为模板。

public String longestCommonPrefix(String[] strs) {
 if(strs.length == 0){
 return "";
 }
 if (strs[0].isEmpty() && strs.length == 1) {
 return "";
 }
 String shortest = strs[0];//以第一个字符串为准做对比
 for (int i = 0; i < strs.length; i++) {
 shortest = this.getShortest(strs[i], shortest);
 }
 return shortest;
​
 }
​
 private String getShortest(String s, String shortest) {
 if (s.indexOf(shortest) != 0) {
 shortest = shortest.substring(0, shortest.length() - 1);
 if (shortest.isEmpty()) {
 return "";
 }
 shortest = getShortest(s, shortest);//递归调用直到符合标准
 }
 return shortest;
 }

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 119,493评论 16 133
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 3,120评论 1 44
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    枫叶appiosg阅读 2,889评论 0 13
  • 《马戏之王》是很早之前就上映的电影了,虽然并没有引起什么巨大的议论,但是总觉得自己应该把对它的感动表达出来。 ...
    林东儿阅读 244评论 0 1
  • 妈妈,我向你道歉“对不起” 我不应该看书的时候在玩,有一天,你头疼,让我自己去看书,几个小时过去,我只...
    63f3bc70e361阅读 206评论 0 5