Leetcode14. 最长公共前缀
一、题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
-
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl” -
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:“”
解释:输入不存在公共前缀。
- 提示:
- 1 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] 仅由小写英文字母组成
二、解决思路和代码
-
解决思路
- 分析:最长公共前缀的长度 小于等于 数组中最短字符串的长度
- step1: 找到最短字符串的位置。
- step2: 将其余字符串中的字符与最短字符串中统一索引位置的字符进行匹配
- step3: 根据匹配信息,返回最长匹配字符串

- 分析:最长公共前缀的长度 小于等于 数组中最短字符串的长度
-
代码
from typing import List class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:## 只有一个字符串,直接返回字符串if len(strs)==1: return strs[0]## step1: 找到最短字符串的位置。如果最短字符串的长度是0,直接返回"" minLengIdx = 0for idx in range(len(strs)):if len(strs[idx])<=len(strs[minLengIdx]):minLengIdx = idxif len(strs[minLengIdx])==0: return "" ## step2: 以最短字符串为基准matchs = {}strsMinLengIdx = strs[minLengIdx]for idx in range(len(strsMinLengIdx)):matchs[idx] = [strsMinLengIdx[idx],True]## step3: 将其余字符串与最短字符串中的字符进行匹配 for idx in range(len(strs)):if idx==minLengIdx: continuestrs_idx = strs[idx]for i in range(len(strs_idx)):## 字符的索引值大于最短字符串的长度 或 同一索引下的字符不匹配,当前字符串匹配结束if i>=len(strsMinLengIdx) or not matchs[i][1]:breakif strs_idx[i]!=matchs[i][0]:matchs[i][1] = Falsebreak## step4: 返回最长匹配串res = "" for value in matchs.values():if not value[1]: breakres+=value[0] return res
相关文章:
Leetcode14. 最长公共前缀
一、题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:…...
JTT808jt1078
前言 交通部与2016年10月份推出了JT/T 1078-2016标准,全称是<道路运输车辆卫星定位系统视频通信协议> JTT808 808消息头内容如下表所示: 起始字节字段数据类型描述及要求0消息IDWORD2消息体属性WORD消息体属性格式结构图见图24终端手机号BCD[6…...
数字孪生加持,水利水电工程或将实现全生命周期管理
水利水电工程在数字孪生技术的加持,使得建设和运营更加高效和智能化,将工程中各种元素、过程和系统数字化,并建立数字孪生模型,以实现工程建设和运营的智能化管理。数字孪生对水利水电实现对工程建设的全生命周期管理,…...
RA4M2开发(3)----读取ISL29035数据,并在OLED上显示,串口打印
概述 HS3003是一种数字式温湿度传感器,可以测量环境中的温度和湿度。读取HS3003的数据需要连接传感器到一个数据采集系统,一般是微处理器或者单片机。以下是一个简单的读取HS3003数据的概述: 连接电路:将HS3003传感器连接到微处…...
密码复杂度
检查账户认证失败次数限制 修复建议: 配置SSH方式账户认证失败次数限制 编辑/etc/pam.d/sshd文件 在auth行下方添加: auth required pam_tally.so deny5 unlock_time600 no_lock_time 在account行下方添加: account required pam_tally.s…...
Python打印() 中的 SEP 参数
默认情况下,Python 中 print() 函数的参数之间的分隔符是空格(softspace 功能),可以根据我们的选择对其进行修改并设置为任何字符、整数或字符串。“sep”参数用于实现相同的目的,它仅在python …...
AG9300方案替代|替代AG9300设计Type-C转VGA方案|CS5260设计原理图
AG9300方案替代|替代AG9300设计Type-C转VGA方案|CS5260设计原理图 安格 AG9300是一款实现USB TYPE-C到VGA数据的单片机解决方案转换器。ALGOLTEK AG9300支持USB Type-C显示端口交替模式,AG9300可以将视频和音频流从USB Type-C接口传输到VGA端口。在AG9300࿰…...
力扣-文章浏览
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1148. 文章浏览二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.其他总结前言 一、题目:1148…...
Unity提取场景中的静态文本
有些单机项目开发的时候没有做本地文本配置文件,全部写死在场景的对象上面,简单记录一下怎么提取场景里面的文本并且写入到配置文件里面using System.Collections.Generic;using System.IO;using TMPro;using UnityEditor;using UnityEngine;using Unity…...
Netty常用核心类说明
MessageToByteEncoder MessageToByteEncoder是一个抽象编码器,子类可重写encode方法把对象编码为ByteBuf输出。 MessageToByteEncoder继承自ChannelOutboundHandlerAdapter,encode在出站是被调用。 public class MyMessageEncoder extends MessageToB…...
ingress服务
user.default.svc.cluster.local是集群内部service的dns地址,集群外部想访问集群里面的service,可以通过LoadBalaner和NodePort。LoadBalaner可以获得一个公网ip;NodePort在宿主机上开一个端口,访问这个端口会把报文实际的转发到集…...
java 抽象类 详解
目录 一、抽象类概述: 二、抽象方法 : 1.概述 : 2.应用 : 3.特点 : 三、抽象类特点 : 1.关于abstract关键字 : 2.抽象类不能被实例化,只能创建其子类对象 : 3.抽象类子类的两个选择 : 四、抽象类的成员 : 1.成员变量 : 2.成员方…...
MySQL的安装(详解)
文章目录前言一、yum方式安装1、下载并安装MySQL2、 启动MySQL数据库3、查看MySQL初始密码4、登录数据库5、修改MySQL默认密码6、授予root用户远程管理权限7、输入exit退出数据库二、rpm安装方式1、检查2、卸载mariadb3、安装4、启动5、密码总结前言 本教程为Linux下安装mysql的…...
界面控件DevExpress WinForm——轻松构建类Visual Studio UI(二)
DevExpress WinForm拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任…...
BabylonJS之放烟花
一: 技术调研 1. 方案一:ParticleSystem 用ParticleSystem来实现每一束的烟花效果,如果浏览器支持WebGL2功能,使用GPUParticleSystem性能会有极大的提升。 优点: 烟花效果易实现且效果好。 缺点: 每一个P…...
vue3 布局样式的原理
style scoped <style scoped > 它的 CSS 只作用于当前组件中的元素,如果子组件只有一个根元素,也会被渗透 原理: 当我们再组建中使用scoped时,vue会自动为组件中所有元素生成一个随机的属性,形如:da…...
Qt程序使用路径方式和注意事项
Qt程序使用路径方式和注意事项 更多精彩内容👉个人内容分类汇总 👈👉Qt开发经验 👈文章目录Qt程序使用路径方式和注意事项[toc]前言一、Windows下Qt程序使用路径1.准备工作2.测试结果二、Linux下Qt程序使用路径1.准备工作2.测试结…...
和日期相关的代码和bug——一道力扣题中的小发现
目录 Day of the Week 题目大意 常规方法 Python代码 Golang代码 C代码 基姆拉尔森公式 Python代码 Golang代码 C代码 使用库函数 Python代码 Golang代码 C代码 Day of the Week Given a date, return the corresponding day of the week for that date. The inp…...
如何在2023年学习编程并获得开发者工作
丢下自负 许多进入软件开发领域的人都是从最底层开始的,你可能会获得“初级开发者”的头衔。每天面临的问题是:我有十年的专业经验了。我不是个入门员工。但尽管过去的工作经验丰富,我仍然是个入门级的开发者,我还是个新手。别总…...
Python实战之小说下载神器(三)排行榜所有小说:最全热门小说合集,总有一款适合你,好多好多好多超赞的小说...(源码分享学习)
前言 这次的是一个系列内容 给大家讲解一下何一步一步实现一个完整的实战项目案例系列之 小说下载神器(三)(GUI界面化程序) 多线程采集小说下载、采集排行榜所有小说 哈喽!大家上午好啦,我是爱看小说的栗子…...
从FEE到FLS:深入Autosar存储栈底层,搞懂Flash模拟EEPROM的完整流程
从FEE到FLS:深入Autosar存储栈底层,搞懂Flash模拟EEPROM的完整流程 在汽车电子领域,非易失性存储管理一直是嵌入式系统设计的核心挑战之一。当工程师需要在片内Flash上实现类似EEPROM的细粒度数据更新功能时,Autosar存储协议栈提…...
Wan2.2-I2V-A14B开源大模型:支持ONNX导出与边缘设备轻量化部署
Wan2.2-I2V-A14B开源大模型:支持ONNX导出与边缘设备轻量化部署 1. 开箱即用的文生视频解决方案 Wan2.2-I2V-A14B是一款强大的文生视频开源大模型,能够将文本描述直接转化为高质量视频内容。这个专为RTX 4090D 24GB显卡优化的私有部署镜像,让…...
【TypeScript】 在业务项目中的类型治理
TypeScript 在业务项目中的类型治理:重点不是写类型,而是少挖坑 一、很多团队用了 TypeScript,为什么还是经常出问题 很多项目上了 TypeScript 之后,表面看起来挺规范: 接口有类型组件参数有类型函数入参也有类型 但实…...
OpenClaw+千问3.5-9B:自动化学习笔记整理系统
OpenClaw千问3.5-9B:自动化学习笔记整理系统 1. 为什么需要自动化笔记整理 作为一个长期与技术文档打交道的开发者,我发现自己陷入了一个困境:每天阅读大量技术文章、论文和在线课程,但收集的笔记却散落在不同平台——有些在One…...
ClawdBot部署全流程:从安装到设备授权,手把手带你跑通
ClawdBot部署全流程:从安装到设备授权,手把手带你跑通 1. ClawdBot简介与核心价值 ClawdBot是一个可以在本地设备上运行的个人AI助手,它使用vLLM提供后端模型能力。与常见的云端AI服务不同,ClawdBot的设计理念强调: …...
百川2-13B-4bits量化模型+OpenClaw:低成本自动化办公方案实测
百川2-13B-4bits量化模型OpenClaw:低成本自动化办公方案实测 1. 为什么选择量化模型OpenClaw组合 去年我接手了一个需要处理大量邮件的项目,每天要花3小时在重复性回复上。当我尝试用OpenClaw自动化流程时,发现原版大模型的显存占用让我的R…...
OpenClaw+千问3.5-35B-A3B-FP8:自动化技术文档翻译系统
OpenClaw千问3.5-35B-A3B-FP8:自动化技术文档翻译系统 1. 为什么需要自动化文档翻译 去年参与一个开源项目时,我遇到了多语言文档维护的困境。项目文档需要同步维护中英文版本,每次更新都要经历"写中文→翻译→调整格式→校对"的…...
snabbt.js与Hammer.js集成终极指南:打造流畅触摸手势动画的10个技巧
snabbt.js与Hammer.js集成终极指南:打造流畅触摸手势动画的10个技巧 【免费下载链接】snabbt.js Fast animations with javascript and CSS transforms 项目地址: https://gitcode.com/gh_mirrors/sn/snabbt.js snabbt.js是一个轻量级JavaScript动画库&#…...
电动汽车模型考虑多种需求响应及微网的虚拟电厂日前优化调度模型的MATLAB代码(含空调负荷)
MATLAB代码:含多种需求响应及电动汽车的微网/虚拟电厂日前优化调度 关键词:需求响应 空调负荷 电动汽车 微网优化调度 虚拟电厂调度 仿真平台:MATLABCPLEX 主要内容:代码主要做的是一个微网/虚拟电厂的日前优化调度模型&#…...
OpenClaw环境隔离方案:安全运行不受信SecGPT-14B技能
OpenClaw环境隔离方案:安全运行不受信SecGPT-14B技能 1. 为什么需要环境隔离 上周我在测试一个从社区下载的SecGPT-14B技能包时,差点酿成一场小灾难。这个技能声称可以自动分析网络安全日志,但在运行时突然尝试删除我的工作目录文件。幸亏我…...
