算法题---最长公共前缀
2020-12-13 04:15
标签:col return substr empty end -- exception catch bre 题目来源:https://leetcode-cn.com/problems/longest-common-prefix/ 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输入: ["dog","racecar","car"] 所有输入只包含小写字母 a-z 。 解答: 解答二: 算法题---最长公共前缀 标签:col return substr empty end -- exception catch bre 原文地址:https://www.cnblogs.com/ningJJ/p/11106509.html
输出: "fl"
示例 2:
输出: ""
解释: 输入不存在公共前缀。
说明:package com.zx.leetcode.longestcommonprefix;
/**
* @Author JAY
* @Date 2019/6/29 13:30
* @Description 最长公共前缀
**/
public class SolutionV2 {
public static void main(String[] args) {
// String[] str = {"dog","dracecar","dcar"};
// String[] str = {"flower","flow","flight"};
String[] str = {"flow","flow2","flow3","flight"};
// String[] str = {"1flow","2flow","flow"};
System.out.println(longestCommonPrefix(str));
}
public static String longestCommonPrefix(String[] strs) {
if (strs.length == 0){
return "";
}
String s = strs[0];
for (int i = 1; i ) {
while (strs[i].indexOf(s) != 0){
s = s.substring(0,s.length() - 1);
if (s.isEmpty()){
return "";
}
}
}
return s;
}
}
package com.zx.leetcode.longestcommonprefix;
/**
* @Author JAY
* @Date 2019/6/29 13:30
* @Description 最长公共前缀
**/
public class Solution {
public static void main(String[] args) {
// String[] str = {"dog","dracecar","dcar"};
// String[] str = {"flower","flow","flight"};
// String[] str = {"flow","flow","flow"};
String[] str = {"1flow","2flow","flow"};
System.out.println(longestCommonPrefix(str));
}
public static String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0){
return "";
}
boolean begin = true;
StringBuilder sb = new StringBuilder();
int i = 0;
int length = strs.length;
String first = strs[0];
while (begin){
try {
String substring = first.substring(i, i + 1);
for (int index = 1; index ){
if (!substring.equals(strs[index].substring(i,i+1))){
begin = false;
break;
}
}
if (begin){
sb = sb.append(substring);
}
if (first.equals(sb.toString())){
//说明已经全部匹配到了,推出循环
begin = false;
}
i++;
}catch (Exception e){
begin = false;
}
}
return sb.length() == 0 ? "" : sb.toString();
}
}