LeetCode:14. 最长公共前缀

news2024/9/20 16:04:02

14. 最长公共前缀

  • 1)题目
  • 2)思路
  • 3)代码
  • 4)结果

1)题目

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2)思路

当数组长度=1时,最长公共前缀就是本身;
数组长度>1时,
数组第一个值与第二个值进行判断,如果不存在公共前缀直接返回 "" ,
存在公共前缀的话,这个公共前缀与第三个值进行判断,···

3)代码

public static String longestCommonPrefix(String[] strs) {
    if (strs.length == 1) return strs[0];
    String str = strs[0];
    for (int i = 1; i < strs.length; i++) {
        String minStr = (str.length() >= strs[i].length()) ? strs[i] : str;
        String maxStr = (minStr.equals(str)) ? strs[i] : str;
        str = longest(minStr, maxStr);
        if (str == null) return "";
    }
    return str;
}

// 判断两个字符串之间是否存在公共前缀,不存在返回null;
public static String longest(String minStr, String maxStr) {
    if (minStr.equals(maxStr.substring(0, minStr.length()))) return minStr;
    for (int j = 0; j < minStr.length(); j++) {
        if (minStr.charAt(j) != maxStr.charAt(j)) return minStr.substring(0, j);
    }
    return null;
}

4)结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python常用快捷键

一、编辑&#xff08;Editing&#xff09;Ctrl Space 基本的代码完成&#xff08;类、方法、属性&#xff09;Ctrl Alt Space 快速导入任意类Ctrl Shift Enter 语句完成Ctrl P 参数信息&#xff08;在方法中调用参数&#xff09;Ctrl Q 快速查看文档F1 外部文档Shift F…

c语言 通讯录 动态内存开辟

通讯录 通讯录中能够存放1000人信息 每个人信息&#xff1a; 姓名年龄性别电话地址 2.增加人的信息 3.删除指定人的信息 4修改指定人的信息 5.查找指定人的信息 6.排序通讯录的信息 contact.h 放头文件的声明 tset.c 测试通讯录模块 contact.c 函数的实现 test.c #include &…

基于不同操作系统升级知行之桥的常见问题

此前的文章知行之桥2022版本升级之页面变化以及监控邮件答疑给大家分享了一些升级到知行之桥最新版本关于Web页面显示和监控邮件的一些问题&#xff0c;本篇将分享一些windows和Linux不同操作系统升级部署知行之桥最新版本的一些Q&A。 EDI服务器是windows服务器 Windows操…

Smart JavaScript UI 14.4.0 Crack【htmlelements】

Smart是一个建立在 JavaScript、HTML 和 CSS 之上的全面且创新的 UI 库。Ω578867473使开发人员能够交付专业的、跨浏览器兼容的 Web 应用程序&#xff0c;同时显着缩短他们的开发时间。Smart HTML Elements 包含 60 多个 UI 组件&#xff0c;是 Web 上发展最快的 JavaScript U…

Centos7配置阿里云yum源及epel源

Background 踩坑记录吧。下次可以直接复制粘贴&#xff0c;不用再去排查是哪个字母字符少了多了&#xff0c;我这都是执行成功的命令粘贴过来的。 1、基础知识简介 yum: 全称“Yellow dog Updater, Modified”&#xff0c;是一个专门为了解决包的依赖关系而存在的软件包管理器…

ubuntu 18.04 Pytorch安装GPU版本

先上成功的图片 过程总结&#xff1a; 之前也配置过&#xff0c;但是时间流逝&#xff0c;之前的方法也过时了&#xff08;旧方法一般会提到先装nvidia驱动&#xff0c;再cuda&#xff0c;再cudnn之类&#xff09;。 我今天尝试安装cuda 11.7时&#xff0c;发现cuda会自动安装…

使用 dict 对象创建多重索引 DataFrame

使用 dict 对象创建多重索引 DataFrame创作背景查看所需 dict 的格式结尾创作背景 本菜鸡最近碰到了需要使用字典创建多重索引 DataFrame 的场景&#xff0c;谨以本文记录解决过程。 如果觉得我这篇文章写的好的话&#xff0c;能不能给我 点个赞 &#xff0c;评论 、收藏 一条…

对近似算法概念的学习

近似算法基本概念可近似分类最小顶点覆盖问题近似算法的分析&#xff1a;多机调度问题近似算法贪心G-MPS近似算法递降贪心法DG-MPS货郎问题最近邻NN算法最小生成树法MST最小权匹配MM算法0-1背包问题贪心G-KK多项式近似方案完全多项式时间的近似方案背包问题的对偶问题总结基本概…

彻底搞懂UML图

用例图 用例图的结构主要分为三个部分&#xff1a;参与者、用例、参与者与用例之间的关系。 参与者&#xff1a;不是特指人&#xff0c;是指系统以外的&#xff0c;在使用系统或与系统交互中所扮演的角色。因此参与者可以是人&#xff0c;可以是事物&#xff0c;也可以是时间…

关于alpine如何制作JDK镜像

Docker制作jdk镜像(v1.0)1.1首先编写Dockerfile文件#1.指定基础镜像&#xff0c;并且必须是第一条指令RROM centos:7#2.指明该镜像的作者和其电子邮件MAINTAINER xnx "zwcqq.com"#3.在构建镜像时&#xff0c;指定镜像的工作目录&#xff0c;之后的命令都是基于此工作…

Python自制简易版计算器小程序

前言 今天来给你们分享一个自制的桌面小程序【简易版计算器】 文章内有效果展示&#xff0c;你们可以自行看看哦 不想看文章&#xff0c;想直接领取源码的话&#xff0c;可以直接点击文章末尾的名片哈 环境准备 Python 3.6 Pycharm 代码展示 界面设置 导入模块 所有 源码 …

STM32读取SHT3x系列温湿度传感器,标准库和HAL库

STM32读取SHT3x系列(SHT30、SHT31、SHT35)温湿度传感器的数据并显示在0.96寸OLED屏上。 我下面提供两份代码&#xff0c;一份是标准库使用硬件I2C的&#xff0c;另一份是HAL库使用软件模拟IIC的。 我用的单片机是STM32F103C8T6&#xff0c;温湿度传感器是SHT30。 STM32软件I…

Spring Cloud与Nacos部署Spring Boot项目

本文记录一个用于Spring Cloud 和nacos的一个项目配置方案 本文主要通过nacos实现了两点功能&#xff1a; 1、服务的注册与发现 2、nacos的动态配置 项目中主要包括了nacos-consumer和nacos-provider&#xff0c;一个消费者&#xff0c;一个生产者的角色&#xff0c;消费者负责…

旋转目标检测复现-yolov5-obb

复现源码&#xff1a; https://github.com/hukaixuan19970627/yolov5_obb 亲测可行 安装流程&#xff1a; 按照https://github.com/hukaixuan19970627/yolov5_obb/blob/master/docs/install.md 确保安装过程不报错&#xff0c;否则影响后续训练 安装成功即可准备数据集 hf_t…

MySQL复制技术方案——组复制

1&#xff0e;原理 增强半同步复制虽然解决了HA切换之后的幻读问题&#xff0c;也从一定程度上使得主从实例 之间的数据一致性保障得到增强&#xff0c;但是仍然还有很多问题需要解决。 例如&#xff1a; HA切换程度需要依赖于MySQL服务器之外的第三方程序实现&#xff0c;维…

2022年12月安全事件盘点

2022年12月安全事件盘点 一、基本信息 2022年12月安全事件共造成约8327万美元损失&#xff0c;金额数量较上月有所下降。本月RugPull数量基本与上月持平。但临近年底&#xff0c;熊市社媒诈骗等较上个月有所增加&#xff0c;Discord攻击诈骗成为重灾区。另外本月依然有钱包&…

产线工控设备安全现状分析

工控设备安全现状 工业控制系统是支撑国民经济的重要设施&#xff0c;是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域&#xff0c;支撑起国计民生的关键基础设施。 随着传统的工业转型&#xff0c;数字化、网络化和智能化的工…

IB课程为什么深受国际学生的喜爱?

凯恩斯是一个被大自然包围的城市。由于得天独厚的地理位置&#xff0c;在凯恩斯随时都可以让你感受到与自然融为一体的亲近与惬意。此外&#xff0c;安全性高也是一大优势&#xff0c;昆士兰当地人对国际学生非常热情友好&#xff0c;在你需要帮助的时候&#xff0c;从来不会感…

C++跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架源码

C跨平台&#xff08;支持LINUX&#xff0c;WIN32&#xff0c;Solaris&#xff0c;MacOS&#xff0c;FreeBSD&#xff09;的网络通信库及服务器编程框架源码 完整代码下载地址&#xff1a;跨平台的网络通信库及服务器编程框架源码 一、描述 1.1、库组成1.2、功能模块组成 1.2.1…

linux配置xrdp

源码 https://github.com/neutrinolabs/xrdp.git xrdp需要安装openssl-devel, pam-devel, libX11-devel, libXfixes-devel, libXrandr-devel ./bootstrap //git submodule下载&#xff0c;需要安装nasm&#xff0c;autoconf生成configure ./configure && make -j4 &a…