LeetCode刷题---简单组(二)

news2025/1/25 4:34:05

文章目录

  • 🍒题目一 14. 最长公共前缀
  • 🍒解法一
    • 🍒find函数
  • 🍒题目二 13. 罗马数字转整数
  • 🍒解法一
  • 🍒题目三 9. 回文数
  • 🍒解法一

🍒题目一 14. 最长公共前缀

请添加图片描述
编写一个函数来查找字符串数组中的最长公共前缀。

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

示例 1:

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

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


🍒解法一

来自一位大佬的解答

class Solution(object):
    def longestCommonPrefix(self, s):
        if not s:
            return ""
        res = s[0]
        i = 1
        while i < len(s):
            while s[i].find(res) != 0:
                res = res[0:len(res)-1]
            i += 1
        return res
  • 首先,检查输入的字符串列表s是否为空,如果为空,直接返回一个空字符串,因为没有任何字符串可以用于计算公共前缀。

  • 接着,初始化一个变量res为s列表的第一个字符串,即s[0]。这个变量res将用来存储最长公共前缀。

  • 使用一个循环,从第二个字符串开始,即s[1],一直到最后一个字符串。循环变量i从1递增到len(s)-1。

  • 在内部的while循环中,通过使用字符串的find方法来查找当前的res是否是字符串s[i]的前缀,如果不是,就将res截断掉最后一个字符(res[0:len(res)-1])然后再次进行检查,直到res成为s[i]的前缀为止。

  • 最后,增加i的值,继续处理下一个字符串,直到处理完所有的字符串。

  • 返回res,它将是输入字符串列表s的最长公共前缀。

大概就是根据由第一个字符串进行初始处理,反复使用find函数进行与其余字符串判断,这里的亮点是find函数

🍒find函数

find 函数是Python中字符串对象的一个方法,用于在一个字符串中查找另一个子字符串,并返回第一次出现该子字符串的位置。如果未找到子字符串,find 方法将返回 -1。

sentence = "This is an example sentence"
index = sentence.find("example")
print(index)  # 输出 11,因为"example"在位置11开始

🍒题目二 13. 罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。

示例 1:

输入: s = “III”
输出: 3
示例 2:

输入: s = “IV”
输出: 4
示例 3:

输入: s = “IX”
输出: 9
示例 4:

输入: s = “LVIII”
输出: 58
解释: L = 50, V= 5, III = 3.
示例 5:

输入: s = “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.


🍒解法一

class Solution:
    def romanToInt(self, s):
        d = {
            'I': 1, 
            'IV': 4, 
            'V': 5, 
            'IX': 9, 
            'X': 10, 
            'XL': 40, 
            'L':  50, 
            'XC': 90, 
             'C': 100, 
             'CD': 400, 
             'D': 500, 
             'CM': 900,
              'M': 1000
              }
        result = 0
        i = 0
        while i < len(s):
            str1 = s[i:i+2]  
            if str1 in d: 
                result += d.get(str1) 
                i += 2
            else:
                result += d[s[i]] 
                i += 1
        return result

这位大佬的亮点在i+=2,因为哪怕左右两个罗马数字是小大的顺序,也仅仅是它们两个,接下来就重新开始了,所以这种情况只能是离散的情况,不会连续

🍒题目三 9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true
示例 2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。

🍒解法一

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        x_str = str(x)
        return x_str == x_str[::-1]

本题较为简单,使用了列表的反向操作


请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

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

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

相关文章

使用kettle进行正则表达式组件日志分析

使用Kettle&#xff08;Pentaho Data Integration&#xff09;进行日志分析是一种常见的数据处理任务&#xff0c;特别是当你需要从大量的日志文件中提取和分析数据时。以下是一般步骤&#xff1a; 准备数据源&#xff1a; 确保你有日志文件的数据源&#xff0c;这可以是本地文…

公司内部文件、文档、设计图、源代码、音视频等核心文件数据自动智能透明加密保护,防泄密软件 | 防止外泄系统

天锐绿盾是一种企业级数据加密解决方案&#xff0c;可以实现对办公终端电脑上的文件、文档、设计图、源代码、音视频等数据的透明加密&#xff0c;以防止数据泄露。 天锐绿盾的工作原理是采用内核级透明加密技术&#xff0c;在不影响员工正常工作的情况下&#xff0c;对需要保护…

Vulnhub系列靶机---mhz_cxf: c1f

靶机文档&#xff1a;&#xff1a;mhz_cxf: c1f 下载地址&#xff1a;Download (Mirror): 网卡配置 靶机开机后按住shift&#xff0c;出现界面如图&#xff0c;按e键进入安全模式&#xff1a; 找到ro&#xff0c;删除该行后边内容&#xff0c;并将ro 。。。修改为&#xff1a…

Python绘制玫瑰花

程序员的节日到了&#xff0c;给各位程序员花一朵玫瑰吧。 from matplotlib import cm import matplotlib.pyplot as plt import numpy as npfig plt.figure() ax fig.add_subplot(projection3d) [x, t] np.meshgrid(np.array(range(25)) / 24.0, np.arange(0, 575.5, 0.5)…

EtherCAT从站转modbus RTU协议转换网关用modbus slave测试的方法

远创智控YC-ECT-RTU通讯网关具有EtherCAT从站功能&#xff0c;主要功能是将EtherCAT网络和Modbus-RTU网络连接起来。在使用方面&#xff0c;本网关可以连接到EtherCAT总线中作为从站使用&#xff0c;也可以连接到Modbus-RTU总线中作为主站或从站使用。这款通讯网关还支持多种不…

百度Comate代码助手全新上线SaaS服务,助力企业释放10倍软件生产力

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

什么样的系统能够有效提升维修效率?报修工单管理系统哪家的好用?

维修派单系统的主要目标是为企业或组织提供一种更有效的方式来管理他们的维修任务。这个系统可以用来处理各种维修任务&#xff0c;包括分配任务、跟踪任务的执行情况以及评估任务的完成情况等等。通过使用这个系统&#xff0c;管理者可以全面地了解维修人员的工作情况&#xf…

【王道代码】【2.3链表】d4

关键字&#xff1a; AB归并&#xff0c;递增变递减&#xff08;原表结点&#xff09;、AB归并求交集到C&#xff08;不破坏AB&#xff09;、AB求交集到A

MySQL执行计划分析

执行计划中的常见的列的解释&#xff1a; type system/const &#xff1a;用户主键索引或者唯一索引查询时&#xff0c;只能匹配 1 条数据。一般可以对 sql 查询语句优化成一个常量&#xff0c;那么 type 一般就是 system 或者 const&#xff0c;system 是 const 的一个特例&…

“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式回顾及舆情问题

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 2023年10月24日&#xff0c;笔者全程参加了在安徽合肥奥体中心举办的“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式主论坛&#xff0c;下面来回顾一下。 一、会议简介 会议主题&#xff1a;“…

windows下使用springboot3.0 和 使用grallVM虚拟机

一&#xff1a;准备环境&#xff1a; JDK17 下载地址 &#xff1a;https://www.oracle.com/java/technologies/downloads/ GrallVM 虚拟机 下载地址&#xff1a;https://www.graalvm.org/downloads/ Gradle 7.5 or Maven 3.5 &#xff08;以上版本&#xff09; visual stud…

SolidworksSimulation完成对压力容器的强度分析

如何通过使用SolidworksSimulation完成对压力容器的分析并查看实 体的膜片应力强度以及弯曲应力强度&#xff0c;操作简单易学&#xff0c;让我们进入到操作界面。 我们以罐体底部实体模型为例&#xff0c;这里已经提前设置好了材料。 点击新算例&#xff0c;选择静应力分析 由…

【三维重建-PatchMatchNet复现笔记】

【三维重建-PatchMatchNet复现笔记】 1 突出贡献2 数据集描述3 训练PatchMatchNet3.1 输入参数3.2 制定数据集加载方式 1 突出贡献 在计算机GPU和运行时间受限的情况下&#xff0c;PatchMatchNet测试DTU数据集能以较低GPU内存和较低运行时间&#xff0c;整体误差位列中等&#…

Mac运行Docker报错

Mac运行Docker报错 &#x1f4d4; 千寻简笔记介绍 千寻简笔记已开源&#xff0c;Gitee与GitHub搜索chihiro-notes&#xff0c;包含笔记源文件.md&#xff0c;以及PDF版本方便阅读&#xff0c;且是用了精美主题&#xff0c;阅读体验更佳&#xff0c;如果文章对你有帮助请帮我点…

利用扰动模型计算旋转矩阵的导数例题

深蓝学院《自动驾驶与机器人中的SLAM技术》第一次课习题 这里直接贴出图片了&#xff0c;懒得打字了。

计算机基础知识38

创建表的完整语法 create table t1(id int,name varchar(43),age int); create table 库名.表名( 字段名1 数据类型 约束条件 约束条件 约束条件 约束条件, 字段名2 数据类型 约束条件 约束条件 约束条件 约束条件...); 1. 字段名和数据类型必须…

Socket 是什么? 总结+详解

文章摘要&#xff1a;Socket 套接字 编程接口 netstat-ano 创建 建立连接 断开 删除 1.Socket 是什么 Socket &#xff1a;套接字&#xff08;socket&#xff09;是一个抽象层&#xff0c;应用程序可以通过它发送或接收数据&#xff0c;可对其进行像对文件一样的打开、读写和…

Netty 入门 — ByteBuf,Netty 数据传输的载体

上篇文章&#xff08;Netty 入门 — Bootstrap&#xff0c;一切从这里开始&#xff09;&#xff0c;我们了解了 Netty 的第一个核心组件&#xff1a;Bootstrap&#xff0c;它是 Netty 程序的开端。今天我们来熟悉 Netty 的第二个组件&#xff1a;ByteBuf&#xff0c;Netty 数据…

尚硅谷大数据项目《在线教育之实时数仓》笔记003

视频地址&#xff1a;尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第7章 数仓开发之ODS层 P015 第8章 数仓开发之DIM层 P016 P017 P018 P019 01、node001节点Linux命令 02、KafkaUtil.java 03、DimSinkApp.java P020 P021 P022 P023 第7章 数…

GNSS全球卫星导航系统相关技术

一、参考资料 映核物联网&#xff5c;什么是GNSS&#xff1f; 二、GNSS相关介绍 GNSS&#xff08;Global Navigation Statellite System&#xff09;&#xff0c;即全球导航卫星系统&#xff0c;GNSS的作用是定位和导航。至少4颗卫星&#xff0c;实现准确定位。 1. 全球导航…