[算法]最长公共前缀

题目

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例

输入: [“flower”,“flow”,“flight”]
输出: “fl”

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

这是一道简单题,没什么说的

class Solution {
    public String longestCommonPrefix(String[] str) {
        if(str==null||str.length==0) return "";
        //随便取第一个开始,这里其实也可以取长度最短的一个
        String result = str[0];
        for (String s : str) {
            int j = 0;
            //下标必须同时小于result和当前字符串的长度
            for (; j < result.length() && j < s.length(); j++) {
                if (result.charAt(j) != s.charAt(j)) {
                    break;
                }
            }
            //对result截取公共部分
            result = result.substring(0, j);
        }
        return result;
    }
}

举一反三

思考,如果不是公共前缀了,而是子集,中间的某几个字符相同,如何处理?

热门文章

暂无图片
编程学习 ·

人脸活体离线识别摇头点头张嘴眨眼动作活体算法源码解析

活体识别要求最近我们公司的项目需要做一个活体识别的功能,要求如下: 1.离线识别,本地识别活体,这样速度快1s内完成。需要识别出人脸,并判断是否在摇头 ,点头,张嘴,眨眼等动作,进而判断是否活体,准确率要求90%即可,可以去破解相信没有任何一个项目能完全规避的,哪怕…
暂无图片
编程学习 ·

react组件返回上级时,记录上级组件状态

最近开发项目中,做管理后台,很多表格列表,有搜索条件,有分页;在跳转到详情页面,返回时,列表组件重新渲染,之前的搜索条件,分页什么的,都没有记住;还需要重新选,点击,交互体验很不好。1.这里想到2两个办法,一个是吧搜索条件存到缓存中;每次进行读写;条件太多,或…
暂无图片
编程学习 ·

常用的运行脚本

常用的运行脚本1、java -Xmx1430m -cp "scenic_area_cas-1.0-SNAPSHOT.jar" scenery.extend.extendMain2、指定lib运行java -Djava.ext.dirs="./lib" -Xmx2048m -cp "subwaystationcompare-1.0-SNAPSHOT.jar" com.sogou.compareMain3、hadoop j…
暂无图片
编程学习 ·

收藏量4w+的Web开发框架,你还没学?点击收藏!

Python的Web开发,也是工作岗位比较多的领域。如果你对Python的Web开发有兴趣,正打算开始学习使用Python做Web开发等,那么学习一门基于Python的Web开发框架是必修课。Python作为当前最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Djan…
暂无图片
编程学习 ·

jackson的学习记录

Jackson对于date的反序列化只支持几种,如果不符合默认格式则会报一下错误 org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value 2012-12-12 12:01:01: not a valid representation (error: Can not parse date &…
暂无图片
编程学习 ·

RocketMQ 5:消息重试

1.创建消费者RetryConsumer,使用consumer.setMaxReconsumeTimes()方法可以设置重试次数,默认15次,返回ConsumeConcurrentlyStatus.RECONSUME_LATER;消费失败后,先会进入%RETRY%group1中,再到这个ConsumerGroup。而如果一直这样重复消费都持续失败超过重试次数,就会投递到D…
暂无图片
编程学习 ·

vue+ts报错 Parsing error: Unexpected token

1.检查是否安装 babel-eslint2.打开.eslint.js文件检查部分属性和下方的是否匹配// ESlint 检查配置 module.exports = {root: true,parserOptions: {parser: babel-eslint,sourceType: module},parser: "vue-eslint-parser",//------------env: {browser: true,node…
暂无图片
编程学习 ·

xp系统关于net use报错

在宿主机中使用net use命令映射xp虚拟机中c盘时,报错信息如下: 明明输入正确的用户名和密码,却提示用户名或密码不正确此时,应该在虚拟机中改变xp系统的文件夹选项 使用简单文件共享被默认打勾,去掉以后就可正常使用再次在物理机中输入命令,如图所示: 但我很迷惑为什么有…
暂无图片
编程学习 ·

注意力机制以及应用

注意力机制以及应用注意力机制的由来encoder-decoder简单原理说明global和hard以及localCNN中的attentionself-attention Attention成为了越来越来模型里绕不过去的坎,好像不过怎么样都加一个,那么注意力机制到底是什么以及计算流程和具体应用有哪些呢,今天来简单罗列一下。…
暂无图片
编程学习 ·

阿里云ECS服务器怎么安装宝塔面板?

首先,宝塔Linux面板安装前的环境要求: 1.操作系统:全新系统(支持CentOS、Ubuntu、Debian、Fedora、Deepin) 2.确保是纯净的操作系统,没有安装过其它环境带的Apache/Nginx/php/MySQL 3.宝塔Linux6.0版本是基于centos7开发的,强烈建议使用centos7.x 系统 4.内存要求:内存要…
暂无图片
编程学习 ·

jupyter引用当前目录下的文件不成功解决方案

1.创建一个Ipynb_importer.py 文件内容如下: import io, os,sys,types from IPython import get_ipython from nbformat import read from IPython.core.interactiveshell import InteractiveShellclass NotebookFinder(object):"""Module finder that locates…
暂无图片
编程学习 ·

冒泡排序

冒泡排序 public class Test{public static void main(String[] args){int[] arr = {20,5,15,10,0,25};int temp = 0;for (int j=0;j<arr.length-1;j++ ){for (int i=0;i < arr.length-1-i ;i++ ){if (arr [i] > arr [i+1]){temp = arr [i+1];arr [i+1] = arr [i];arr…
暂无图片
编程学习 ·

wx.DateTime.ParseDate(‘yesterday‘)往前倒退一天

用wxpython写了个小程序,打开程序后要把工作日期往前倒退一天,看wx.DateTime的说明时,发现这个控件有强大的自动分析功能。官方原文如下:The date formatting and parsing functions convert wx.DateTime objects to and from text. The conversions to text are mostly tr…
暂无图片
编程学习 ·

springboot添加一些全局异常处理

1.添加全局异常处理类 package com.iflytek.edu.hnezzhxy.common.base;import com.iflytek.edu.hnezzhxy.common.enums.ResponseCodeEnum; import com.iflytek.edu.hnezzhxy.util.ResponseResultUtil; import com.iflytek.edu.hnezzhxy.vo.ResultVO; import org.slf4j.Logger; …
暂无图片
编程学习 ·

美团数据库高可用架构的演进与设想

本文介绍最近几年美团MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新。同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望。在2015年之前,美团(点评侧)长期使用MMM(Master-Master replication manage…
暂无图片
编程学习 ·

Git 操作文档

Git 网站操作1.打开Git的网站,注册一个账号2.注册成功,登录之后是这样3.点击 New Project 新建一个项目填写完成之后选择一下项目的“可见等级”;有:“ Private (私有)” 、“ Internal (内部)”、“ Public (公开)”点击 “ Create Project ”按钮,这个时候项目就已…
暂无图片
编程学习 ·

VINS-Mono理论推导1

ReferenceVINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator. Quaternion Kinematics for Error-State KF. 预积分的推导 预积分是VINS-Mono中十分重要的一个步骤,主要涉及的是IMU的运动方程,下面对这部分进行一个简单的推导,主要使用的是ESKF…