当前位置: 首页 > 编程日记 > 正文

刻意练习:LeetCode实战 -- Task14. 最长公共前缀

背景

本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式,即选择了五个知识点(数组、链表、字符串、树、贪心算法),每个知识点选择了 三个简单、两个中等、一个困难 等级的题目,共计三十道题,利用三十天的时间完成这组刻意练习。

本次任务的知识点:字符串

字符串或串(string) 是由数字、字母、下划线组成的一串字符。一般记为 s = “a1a2...an”(n >= 0)。它是编程语言中表示文本的数据类型。

通常以串的整体作为操作对象,如:在串中查找某个子串在该串中首次出现的位置、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。串通常以顺序的方式进行存储与实现。


题目

  • 题号:14
  • 难度:简单
  • https://leetcode-cn.com/problems/longest-common-prefix/

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

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

示例 1:

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

示例 2:

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

说明:

所有输入只包含小写字母 a-z。


实现

C# 语言

  • 状态:通过
  • 118 / 118 个通过测试用例
  • 执行用时: 144 ms, 在所有 C# 提交中击败了 94.92% 的用户
  • 内存消耗: 23.4 MB, 在所有 C# 提交中击败了 11.69% 的用户
public class Solution {public string LongestCommonPrefix(string[] strs) {if (strs.Length == 0)return string.Empty;string result = strs[0];for (int i = 1; i < strs.Length; i++){result = Prefix(result, strs[i]);if (string.IsNullOrEmpty(result))break;}return result;        }public string Prefix(string str1, string str2){int len1 = str1.Length;int len2 = str2.Length;int len = Math.Min(len1, len2);int i = 0;for (; i < len; i++){if (str1[i] != str2[i])break;}return i == 0 ? string.Empty : str1.Substring(0, i);}    
}

Python 语言

  • 执行结果:通过
  • 执行用时:44 ms, 在所有 Python3 提交中击败了 35.93% 的用户
  • 内存消耗:13.6 MB, 在所有 Python3 提交中击败了 5.14% 的用户
class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:if len(strs) == 0:return ""result = strs[0]for i in range(len(strs)):result = self.Prefix(result, strs[i])if result == "":breakreturn resultdef Prefix(self, str1: str, str2: str) -> str:len1, len2 = len(str1), len(str2)i = 0while i < min(len1, len2):if str1[i] != str2[i]:breaki += 1return "" if i == 0 else str1[0:i]

往期活动

LSGO软件技术团队会定期开展提升编程技能的刻意练习活动,希望大家能够参与进来一起刻意练习,一起学习进步!

  • Python基础刻意练习活动即将开启,你参加吗?
  • Task01:变量、运算符与数据类型
  • Task02:条件与循环
  • Task03:列表与元组
  • Task04:字符串与序列
  • Task05:函数与Lambda表达式
  • Task06:字典与集合
  • Task07:文件与文件系统
  • Task08:异常处理
  • Task09:else 与 with 语句
  • Task10:类与对象
  • Task11:魔法方法
  • Task12:模块

我是 终身学习者“老马”,一个长期践行“结伴式学习”理念的 中年大叔

我崇尚分享,渴望成长,于2010年创立了“LSGO软件技术团队”,并加入了国内著名的开源组织“Datawhale”,也是“Dre@mtech”、“智能机器人研究中心”和“大数据与哲学社会科学实验室”的一员。

愿我们一起学习,一起进步,相互陪伴,共同成长。

后台回复「搜搜搜」,随机获取电子资源!
欢迎关注,请扫描二维码:

相关文章:

6.1.1 验证注解的使用

数据注解特性定义在名称空间System.ComponentModel.DataAnnotations 中(但接下来 将看到&#xff0c;有些特性不是定义在这个名称空间中)。它们提供了服务器端验证的功能&#xff0c;当在模 型的属性上使用这些特性之一时&#xff0c;框架也支持客户端验证。在名称空间DataAnno…

Javascript创建数组的方式你了解了吗

Javascript数组 数组(Array)是一种复杂的数据类型&#xff0c;它属于Object(对象)类型&#xff0c;用来将一组数组合在一起&#xff0c;通过一个变量就可以访问一组数据。在使用数组时&#xff0c;经常会搭配循环语句使用&#xff0c;从而很方便地对一组数据进行处理。 创建数组…

loadrunner另类玩法【测试帮日记公开课】

https://edu.51cto.com/course/10658.html

刻意练习:LeetCode实战 -- Task15. 有效的括号

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

对口令协议的几种攻击方式

1、窃听入侵者搭线窃听&#xff0c;试图从正在进行的通信中获得有用的信息。 2、重放入侵者记录过去通信中的消息并在以后的通信中重放它们。 3、中间人攻击入侵拦截各主体之间的消息&#xff0c;并用自己的消息来取代它们。在向服务器发送的消息中他假冒用户的身份&#xff0c…

初学者如何学Java开发

初学者如何学Java开发?这是很多人都比较关注的一个问题&#xff0c;尤其是对于零基础想要学习java的同学&#xff0c;java技术语言包含的知识点有很多&#xff0c;下面小编就给大家整理一些建议希望可以帮到初学者们。 初学者如何学Java开发? 1.教材的选择 学习Java书籍的选择…

[算法] [常微分方程] [欧拉法 改进欧拉法 经典R-K算法]

1 #include<iostream>2 #include<cmath>3 #include<cstdio>4 #include<iomanip>5 using namespace std;6 double h0.1;//步差7 double xi[11]{0};8 double ol_yi[11]{1};9 double gol_yi[11]{1}; 10 double rk_yi[11]{1}; 11 double real_yi[11]{1}; 1…

刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

轻松实现QQ用户接入

1. 申请合作伙伴ID (PID),Key (PKey)2. 发送请求 https://graph.qq.com/oauth2.0/authorize?response_typecode&client_id100000353&redirect_urihttp://www.wodongni.com/loginReturn.aspx redirect_uri:回传URL client_id: 合作伙伴ID (PID) 返回&#xff1a; …

web前端培训之Javascript如何改变数组的长度?

修改数组长度 使用“数组名.length”可以获取或修改数组的长度。数组长度的计算方式为数组中元素的最大索引值加1&#xff0c;示例代码如下。 var arr [a, b, c]; console.log(arr.length); //输出结果:3 在上述代码中&#xff0c;数组中最后一个元素是c&#xff0c;该元素的索…

刻意练习:LeetCode实战 -- Task17. 最长回文子串

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

CvBlobTrackerCC 多目标跟踪算法简析

&#xff08;1&#xff09;跟踪器的建立&#xff1a;对新产生的目标&#xff0c;且宽&#xff08;高&#xff09;大于5时&#xff0c;建立跟踪器 &#xff08;2&#xff09;Kalman滤波&#xff1a;用Kalman滤波器对目标当前的方位、大小做出预测 目标特征矢量采用(x, y, dx, dy…

linux基础学习(二)

------------------------------------------------------------------------------------------------------------------------------------------------0.真机远程管理虚拟机telnet 明文传输 tcp 23ssh 加密传输 tcp 22ssh -X root172.25.0.11 //真机远程管理 ser…

ui设计培训需要什么基础?如何入门学习?

​ UI设计是一种直观面向用户的一个技术岗位&#xff0c;在互联网公司&#xff0c;UI设计岗位是不可或缺的&#xff0c;那么对于零基础想要学习UI设计的同学来说&#xff0c;ui设计培训需要什么基础?如何入门学习呢?我们来看看下面的详细介绍。 ​  ui设计培训需要什么基础…

SQL Server日志清除的两种方法 .

在使用过程中大家经常碰到数据库日志非常大的情况&#xff0c;在这里介绍了两种处理方法…… 方法一 一般情况下&#xff0c;SQL数据库的收缩并不能很大程度上减小数据库大小&#xff0c;其主要作用是收缩日志大小&#xff0c;应当定期进行此操作以免数据库日志过大。 1、设置数…

刻意练习:LeetCode实战 -- Task18. 正则表达式匹配

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

CentOS7启动图形界面

1.yum groupinstall "GNOME Desktop" -y 2.systemctl get-default 3.systemctl set-default graphical.target 4.systemctl get-default 5.reboot

Java培训学习步骤有哪些

最近几年&#xff0c;有很多学习java技术的同学都有过半途而废的想法&#xff0c;认为java零基础是很难学会的&#xff0c;其实出现这样的问题&#xff0c;最主要的原因就是学习方法有问题&#xff0c;下面小编整理的Java培训学习步骤&#xff0c;希望能够帮助大家更有效的学习…

extjs 4 tab panel得strip在IE下右偏解决办法

这是受 align"center" 影响造成的转载于:https://www.cnblogs.com/rav009/archive/2011/12/31/5131240.html

Vbox共享文件夹不显示了

博主之前装的虚拟机没啥问题&#xff0c;按部就班&#xff0c;打开“我的电脑”可以看到主机上的共享文件夹&#xff0c;最近重装了一波&#xff0c;各种问题就来了&#xff0c;包括共享文件夹设置好后&#xff0c;看不见了。 介绍比较麻烦的方案&#xff0c;就是打开“我的电脑…

刻意练习:LeetCode实战 -- Task19. 相同的树

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

找Java培训机构需要注意那些

​ java技术在互联网行业已经是众所周知的一个编程热门技术&#xff0c;市面上也出现了很多java培训机构&#xff0c;那么想要找到一个适合自己且比较专业的java培训机构应该注意哪些呢?下面小编就为大家详细的介绍一下找Java培训机构需要注意那些? ​  找Java培训机构需要…

字符串的最大相似匹配

字符串的最大相似匹配计划中&#xff0c;kmp完后&#xff0c;本篇继续。。。转载于:https://www.cnblogs.com/springmvc-hibernate/archive/2011/12/31/2484048.html

刻意练习:LeetCode实战 -- Task20. 对称二叉树

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

洛谷 P1598 垂直柱状图【字符串+模拟】

P1598 垂直柱状图 题目描述 写一个程序从输入文件中去读取四行大写字母&#xff08;全都是大写的&#xff0c;每行不超过72个字符&#xff09;&#xff0c;然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。 输入输出格式 输入格式&…

java开发培训中消息中间件的优势有哪些

系统解耦 交互系统之间没有直接的调用关系&#xff0c;只是通过消息传输&#xff0c;故系统侵入性不强&#xff0c;耦合度低。 提高系统响应时间 例如原来的一套逻辑&#xff0c;完成支付可能涉及先修改订单状态、计算会员积分、通知物流配送几个逻辑才能完成;通过MQ 架构设计&…

UIView 的 autoresizingMask 属性 详解。

在 UIView 中有一个autoresizingMask的属性&#xff0c;它对应的是一个枚举的值&#xff08;如下&#xff09;&#xff0c;属性的意思就是自动调整子控件与父控件中间的位置&#xff0c;宽高。 enum { UIViewAutoresizingNone 0, UIViewAutoresizingFle…

刻意练习:LeetCode实战 -- Task21. 二叉树的最大深度

背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法&#xff08;Leetcode&#xff09;刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式&#xff0c;即选择了五个知识点&#xff08;数组、链表、字符串、树、贪心算法&#xff09;&#xff0c;每个知识点选择了…

spring中@value注解需要注意

转自&#xff1a;https://blog.csdn.net/qiuhan/article/details/47089329 首先&#xff0c;value需要参数&#xff0c;这里参数可以是两种形式&#xff1a;Value("#{configProperties[t1.msgname]}")或者Value("${t1.msgname}")&#xff1b; 其次&#xf…

学Java需要用到的软件快收藏!

java编程语言学起来是比较繁琐的&#xff0c;很多java工程师不管是工作还是学习&#xff0c;都会用到一些辅助工具&#xff0c;对于想要学习java技术的人来说&#xff0c;利用java辅助软件学习会比较更有效率&#xff0c;下面小编就为大家一一整理一下学Java需要用到的软件有哪…