博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
14.最长公共前缀
阅读量:7040 次
发布时间:2019-06-28

本文共 991 字,大约阅读时间需要 3 分钟。

题目:

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

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

示例 1:

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

示例 2:

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

解法:

直觉解法:

基本就是遍历对照。

  • 最长公共前缀的长度不会大于最短字符串的长度,所以先选出一个最短字符串,缩小问题规模。(但是其实没必要)
  • 遍历对应位置,如果所有字符串对应位置匹配则记录该位。
  • 最后输出n位相同字符。
public class Solution {    public string LongestCommonPrefix(string[] strs) {        if(strs.Length == 0) return "";        if(strs.Length == 1) return strs[0];        // 选出一个最短的字符长度        int len = strs[0].Length;        for(int i = 0;i

最长公共子串(Java):
public String longestCommonPrefix(String[] strs) {    if (strs.length == 0) return "";    String prefix = strs[0];    for (int i = 1; i < strs.length; i++)        while (strs[i].indexOf(prefix) != 0) {            prefix = prefix.substring(0, prefix.length() - 1);            if (prefix.isEmpty()) return "";        }            return prefix;}
水平扫描:

比较对应列上的字符是否相同。

分治:

这个算法的思路来自于LCP操作的结合律。将原问题分成两个子问题,用子问题的解来比较构成原问题的解。

二分查找:

转载于:https://www.cnblogs.com/zhang-mo/p/10860704.html

你可能感兴趣的文章
UIPopoverController事件分发
查看>>
记一次在线安装postgresql-9.4的问题
查看>>
zabbix/自动发现规则
查看>>
SQL Server 命令行操作
查看>>
GD32F450 200M时USB不稳定
查看>>
java.util.Date java.sql.Date java.util.Date,String,long 类型数据之间的转化
查看>>
MySQL主从配置
查看>>
多表查询
查看>>
ipython notebook
查看>>
gzez某蒟蒻lyy的博客
查看>>
当cpu飙升时,找出php中可能有问题的代码行
查看>>
独孤九剑与黑客编程
查看>>
【windows8开发】序
查看>>
NAT方式,宿主机无法ping通虚拟机
查看>>
RabbitMQ配置
查看>>
bzoj3654 图样图森破
查看>>
POJ 3233 Matrix Power Series (矩阵分块,递推)
查看>>
5.对静态资源映射的规则
查看>>
jQuery中animate()方法以及$('body').animate({"scrollTop":top})不被Firefox支持问题的解决
查看>>
day31 作业试题讲解
查看>>