【刷题笔记8.17】LeetCode:最长公共前缀

news2024/12/23 17:10:28

LeetCode:最长公共前缀

(一)题目描述

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

(二)分析

纵向扫描时,从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较,如果不相同则当前列不再属于公共前缀,当前列之前的部分为最长公共前缀。

具体步骤如下:

1、预判断,如果字符串数组中的首个字符串 str[0] 为 null 或 str[0] 为“” 或 str[0].length 为0 ,则返回“”
2、计算首个字符串str[0] 的长度为n,字符串数组的长度为m
3、双层for循环遍历,外层为n,并获取字符串c = str[0].charAt(i)位于位置 i 上的字符。内层为m,遍历字符串数组中的各个字符串在相同列上的字符是否为c,如果strs[j].charAt(i) != c 或是 外层遍历过程中i 等于某个字符串的长度,则首个字符串位于[0, i)之间的部分即为最长公共前缀。
4、最后,如果循环过程没有返回,则str[0]即为最长公共前缀
在这里插入图片描述

(三)具体代码

/**
 * 最长公共前缀
 * 输入:strs = ["flower","flow","flight"]
 * 输出:"fl"
 */
public class Solution {
    public String longestCommonPrefix(String[] strs) {
        //1、预判断
        if (strs[0] == null || strs[0] == "" || strs.length == 0) {
            return "";
        }

        //2、计算首个字符串str[0] 的长度为n,字符串数组的长度为m
        int n = strs.length;
        int m = strs[0].length();

        //3、双层for循环遍历
        for (int i = 0; i < m; i++) {
            char c = strs[0].charAt(i);
            for (int j = 0; j < n; j++) {
                //如果strs[j].charAt(i) != c 或是 外层遍历过程中i 等于某个字符串的长度,则首个字符串位于[0, i)之间的部分即为最长公共前缀。
                if (i == strs[j].length() || strs[j].charAt(i) != c) {
                    return strs[0].substring(0, i);
                }
            }
        }
        //4、最后,如果循环过程没有返回,则str[0]即为最长公共前缀
        return strs[0];
    }
}

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

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

相关文章

python开发环境准备

python开发环境准备 文章目录 python开发环境准备windows安装配置python3下载配置 安装pip&#xff08;通过get-pip.py&#xff09;测试与问题 测试python windows安装配置python3 校验日期 &#xff1a;2023年8月11日 下载 下载地址 官网地址 版本分为推荐下载最新的版本和…

leetcode 377. 组合总和 Ⅳ

2023.8.17 本题属于完全背包问题&#xff0c;乍一看和昨天那题 零钱兑换II 类似&#xff0c;但细看题目发现&#xff1a;今天这题是排列问题&#xff0c;而“零钱兑换II”是组合问题。排列问题强调顺序&#xff0c;而组合顺序不强调顺序。 这里先说个结论&#xff1a;先遍历物品…

原码、反码、补码,进制转换,有符号数和无符号数转换

计算机底层存储数据时&#xff0c;存储的是数据对应的二进制数字。对于整型数据&#xff0c;其二进制表示形式有三种&#xff0c;分别是&#xff1a;原码、反码、补码&#xff0c;而实际存储的是整型数据的补码。 原码、反码以及补码都是有符号的&#xff0c;其中最高位存放符…

windows系统丢失mfc120u.dll的解决方法

1.mfc120u.dll是什么 mfc120u.dll是Windows操作系统中的一个动态链接库&#xff08;Dynamic Link Library&#xff0c;简称DLL&#xff09;文件。它包含了一些用于运行C程序的函数和其他资源。这个特定的DLL文件是Microsoft Foundation Classes&#xff08;MFC&#xff09;库的…

LangChain源码逐行解密之系统(二)

LangChain源码逐行解密之系统 20.2 serapi.py源码逐行剖析 我们可以看一下Google查询的例子,在LangChain中有多种实现的方式。 如图20-5所示,在utilities的serpapi.py代码文件中实现了SerpAPIWrapper。 图20- 5 utilities的serpapi.py的SerpAPIWrapper 在langchain目录的se…

matplotlib从起点出发(7)_Tutorial_7_Artist

1 Artist教程 使用Artist对象来渲染画布。 matplotlib API一共有三个层次&#xff1a; matplotlib.backend_bases.FigureCanvas是绘制图形的区域&#xff1b;matplotlib.backend_bases.Renderer是知道如何在FigureCanvas上绘制的对象&#xff1b;matplotlib.artist.Artist是…

[NOIP2008 提高组] 传纸条——DP+优化

传纸条——DP优化 [NOIP2008 提高组] 传纸条题目描述输入格式输出格式样例样例输入样例输出 提示 温馨提示结题思路四维DP&#xff08;不推荐&#xff09;三维DP&#xff08;推荐&#xff09; A C 代码 [NOIP2008 提高组] 传纸条 题目描述 小渊和小轩是好朋友也是同班同学&am…

代码审计-Java项目审计-SQL注入漏洞

代码审计必备知识点&#xff1a; 1、代码审计开始前准备&#xff1a; 环境搭建使用&#xff0c;工具插件安装使用&#xff0c;掌握各种漏洞原理及利用,代码开发类知识点。 2、代码审计前信息收集&#xff1a; 审计目标的程序名&#xff0c;版本&#xff0c;当前环境(系统,中间件…

挑选最佳编程神器

选择适合的编程软件对于STM32开发至关重要。以下是几个值得推荐的软件&#xff1a;Arduino IDE&#xff1a;适用于跨单片机型号的编程。通过编写通用的Arduino代码&#xff0c;支持多达140多种主流单片机型号。无论是51、ST、ESP、GD、恩智浦、树莓派等&#xff0c;都可以使用统…

KVM虚拟机管理

1、创建、删除快照 关机 init0 列出快照 删除快照 2、虚拟机迁移 报错 解决&#xff1a;关闭防火墙&#xff0c;关闭selinux 其他解决办法&#xff1a;kvm热迁移使用nfs共享存储报错_莉法的博客-CSDN博客

serve : 无法将“serve”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

1、在学习webpack打包的时候&#xff0c;需要 serve用来启动开发服务器来部署代码查看效果的。安装完之后运行出现以下错误&#xff1a; 2、使用命令查看安装目录&#xff1a; npm list -g我们已经安装过了 3、解决&#xff1a; 我们看到上图路径在&#xff1a;C:\Users\qiy…

SpringBoot整合Shiro实现登录认证,鉴权授权

文章目录 前言一、shiro简介二、环境搭建2.1.数据库2.1.1user用户表2.1.2user_role用户角色关系表2.1.3role角色表2.1.4role_permission角色权限关系表2.1.5permission权限表 2.2导坐标2.3实体类2.3.1User2.3.2Role2.3.3Permission 2.4MVC三层2.4.1User2.4.1.1mapper层2.4.1.2s…

python使用xlwt时,报ValueError: More than 4094 XFs (styles)

在写表格时&#xff0c;遇到如下报错 一、报错原因 xlwt最多只能有4094个样式&#xff0c;超出这个样式数量就报错了。 二、解决办法 &#xff08;1&#xff09;去掉样式的要求

Windows权限维持—自启动映像劫持粘滞键辅助屏保后门WinLogon

Windows权限维持—自启动&映像劫持&粘滞键&辅助屏保后门&WinLogon 1. 前置2. 自启动2.1. 路径加载2.1.1. 放置文件2.1.2. 重启主机 2.2. 服务加载2.2.1. 创建服务2.2.2. 查看服务2.2.3. 重启主机 2.3. 注册表加载2.3.1. 添加启动项2.3.2. 查看注册表2.3.3. 重启…

如何使用Asp.net Core实现定时任务,轻松解决任务调度问题!

一、前言 Asp.net core作为一种高效、跨平台的web框架&#xff0c;在开发过程中&#xff0c;我们常常需要在后台执行定时任务&#xff0c;例如清理无用文件、生成报告、发送邮件等任务。对于这种需求&#xff0c;我们可以使用第三方库&#xff08;如Hangfire或Quartz.NET&…

VIOOVI:什么是精益生产改善?如何做好精益生产改善?

现代化企业经营&#xff0c;更要注重科学化管理、精准化布局&#xff0c;才能为长线稳健运营奠定基础。当下&#xff0c;精益生产改善是各行各业都在探索的话题。那什么是精益生产改善&#xff1f;精益生产&#xff0c;也被称之为精益生产方式&#xff0c;它是基于生产组织、管…

Datawhale Django后端开发入门 TASK03 QuerySet和Instance、APIVIew

一、QuerySet QuerySet 是 Django 中的一个查询集合&#xff0c;它是由 Model.objects 方法返回的&#xff0c;并且可以用于生成数据库中所有满足一定条件的对象的列表。 QuerySet 在 Django 中表示从数据库中获取的对象集合,它是一个可迭代的、类似列表的对象集合。主要特点…

重发布 路由策略

[r4]ip ip_prefix 15 permit 192.168.3.0 24. 根据序号插入规则 [r4]undo ip-prefix aa index 15. 删除规则 [r4]ip ip-prefix aa permit 192.168.3.0 24 less- equal 28 抓取目标网段为3.0掩码长度为24到28的路由 [r4]ip ip-prefix aa permit 192.168.3.0 24 greate…

记录一下基于jeecg-boot3.0的待办消息移植记录

因为之前没有记录&#xff0c;所以还要看代码进行寻找&#xff0c;比较费劲&#xff0c;所以今天记录一下&#xff1a; 1、后端 SysAnnouncementController 下面函数增加待办的几个显示内容给前端用 具体代码如下&#xff1a; /*** 功能&#xff1a;补充用户数据&#xff0c…

Google play应用成功上架要点——如何防止封号、拒审、下架?

Google Play是全球最大的移动应用商店之一&#xff0c;它是运行Android操作系统的设备的官方应用商店。它提供各种数字内容&#xff0c;包括应用程序&#xff08;应用&#xff09;、游戏、音乐、书籍等&#xff0c;包括免费和付费选项。这也为许多游戏/APP出海的企业或开发者提…