leetcode刷题(8.13总结)

2023-11-13

1、有效的括号

题目描述:https://leetcode.cn/problems/valid-parentheses/


class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        count = 0
        if len(s) % 2 != 0:
            return False
        for i in s:
            if i in "([{":
                stack.append(i)
                count = count +1
            else :
                if count:
                    a = stack.pop()
                    count = count - 1
                    if a  == '(':
                        if i != ')':
                            return False
                    elif a == '[':
                        if i != ']':
                            return False
                    else:
                        if i != '}':
                            return False
                else:
                    return False
        if count != 0:
            return False
        return True

2、合并两个有序链表

题目描述:https://leetcode.cn/problems/merge-two-sorted-lists/

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
        #定义一个新node存放
        nlist = ListNode(0)
        #定义一个操作node
        cur = nlist
        while list1 or list2:
            cur.next = ListNode(0)
            cur = cur.next
            #如果两个都不为空,说明有数据
            if list1 and list2:
                #如果node2大于或等于node1,将node1放到新node里面,然后list1向后移动
                if list1.val <= list2.val:
                    cur.val = list1.val
                    list1 = list1.next
                #反之list2向后移动
                else:
                    cur.val = list2.val
                    list2 = list2.next
            else:
                #如果两个有一个为空,则直接移动不为空的那个list即可
                if list1:
                    cur.val = list1.val
                    list1 = list1.next
                if list2:
                    cur.val = list2.val
                    list2 = list2.next
        return nlist.next

3、删除有序数组中的重复项

题目描述:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        slow, fast = 0, 1
        while fast < len(nums):
            if nums[fast] != nums[slow]:
                slow = slow + 1
                nums[slow] = nums[fast]
            fast = fast + 1
        return slow + 1

4、移除元素

题目描述:https://leetcode.cn/problems/remove-element/

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        
        l, i = len(nums), 0

        while l > 0 and i < l:
            if nums[i] == val: 
                del nums[i]
                l -= 1
            else:
                i += 1

        return len(nums)

5、实现strStr()

题目描述:https://leetcode.cn/problems/implement-strstr/

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        if not needle:
            return 0
        if len(haystack) < len(needle):
            return -1
        for i in range(len(haystack)):
            index = i
            for j in range(len(needle)):
                if len(haystack) - index < len(needle):
                    break
                if haystack[i] == needle[j]:
                    i+=1
                    if j == len(needle)-1:
                        return index
                    continue
                else:
                    break
        return -1

6、搜索插入位置

题目描述:https://leetcode.cn/problems/search-insert-position/

class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        i,j=0,len(nums) - 1
        while i <= j:
            mid = (i + j) // 2
            if nums[mid] < target:
                i = mid + 1
            else:
                j = mid - 1
        return i

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode刷题(8.13总结) 的相关文章

随机推荐

  • 100道Python基础入门练习题(附答案)

    我们都知道实践是检验真理的唯一标准 想知道自己学会了多少 不妨来做题检验一下吧 今天给大家分享的100道Python基础练习题 因为篇幅有限 先给大家准备了前10道例题 需要全部习题 这些知识部分习题 篇幅还是比较多的 这份完整版的Pyth
  • Linux下ffmpeg的卸载与安装

    ubuntu下比较容易安装会自动安装依赖 sudo add apt repository ppa kirillshkrogalev ffmpeg next sudo apt get update sudo apt get install f
  • FFmpeg av_interleaved_write_frame错误

    av interleaved write frame 1 av interleaved write frame 崩溃 检查 传入的AVPacket中的pts和dts AVFormatContext中的AVStream中的time base
  • 3分钟学会在C ++中以编程方式合并Excel工作表中的单元格

    合并和取消合并单元格是Microsoft Excel的一项简单且常用功能 合并单元格可能会在某些情况下很有用 例如 当工作表中有多个列共享相同的标题时 可以合并列上方的单元格以使其具有共同的标题 如果不再需要合并的单元格 则可以轻松地取消合
  • (五十一)时间序列分析二:平稳时间序列分析(ARMA)

    平稳时间序列 平稳时间序列分为严平稳时间序列与宽平稳时间序列 如果在一个时间序列中 各期数据的联合概零分布与时间 t 无关 则该序列为严平稳时间序列 实际中讨论的平稳时间序列是宽平稳时间序列 指对任意时间下 序列的均值 方差存在并为常数 且
  • 超声波模块详细介绍(stm32循迹小车中超声波的介绍)

    超声波模块详细介绍 stm32循迹小车中超声波的介绍 超声波模块是非常重要的一个模块 今天给大家全面介绍一下超声波模块的原理以及用法 代码的编写 1 超声波模块的认识 首先 市面上的常见超声波模块主要分为以下几种 HC SR04超音波模块
  • 你一无所有,你拥有一切

    你一无所有 你拥有一切 当看到这一篇文章标题的时候 会引起你怎样的共鸣呢 人总是需要从别处获得力量的 我想与更多的人分享 以此勉励我们自己 一 嘴上说说的人生 那年我在离家的时候一个劲地往自己的硬盘里塞 灌篮高手 我妈一副嗤之以鼻的表情看着
  • VMware16安装步骤与初步使用避免踩坑的安装教程

    VMware16安装步骤与初步使用避免踩坑的安装教程 一 软件介绍 VMware Workstation 中文名 威睿工作站 是一款功能强大的桌面虚拟计算机软件 提供用户可在单一的桌面上同时运行不同的操作系统 和进行开发 测试 部署新的应用
  • Fisco Bcos区块链三(WeBASE中间件平台一键部署)

    文章目录 区块链开荒 技术文档 https webasedoc readthedocs io zh CN latest index html 二 WeBASE一键部署 1 前提条件 1 检查环境 1 平台要求 2 检查Java 3 检查my
  • EfficientNet详解

    EfficientNets EfficientNets NAS neural architecture search Single Scaling Compound Scaling EfficientNet Rethinking Model
  • TheDAO被攻击事件考察报告

    作者 ChinaLedge联盟 段玺 Andy Dan 简介 北京时间2016年6月17日发生了在区块链历史上留下沉重一笔的攻击事件 由于 其编写的智能合约存在着重大缺陷 区块链业界最大的众筹项目TheDAO 被攻击前 拥有1亿美元左右资产
  • Android-Notes|BottomNavigationView-爱上-Lottie,android高级开发面试题

    复制代码 封装个 BasicData 存放 App 内置的一些基本数据 这里主要针对 Lottie 文件 val mNavigationAnimationList arrayListOf LottieAnimation HOME Lotti
  • ORA-16009 remote archive log destination must be a STANDBY database

    ORA 16009错误处理 问题描述 主备在做Switchover切换时 在切换后的备库报如下错误 Wed Jul 22 04 49 02 2015 Errors in file u01 app oracle admin orcl bdum
  • 监控告警02--夜莺飞书告警-v4版本

    监控告警02 夜莺飞书告警 v4版本 1 介绍 2 方法 2 1 源码改动 2 2 测试效果 3 说明 1 介绍 v4版本的夜莺集成了shell api wechat wechat robot dingtalk robot 等5中常见的告警
  • docker环境下部署zabbix

    docker环境下部署zabbix 注 安装时出现的问题及解决办法在最下面 docker zabbix 使用docker搭建zabbix服务 Zabbix 介绍 zabbix 音同 z bix 是一个基于WEB界面的提供分布式系统监视以及网
  • OpenGL学习之创建天空盒

    本文主要参考了立方体贴图的基本原理 首先回顾一下什么是立方体贴图 将多个纹理组合起来映射到一个单一纹理 就是立方体贴图 Cube Map 基本上说立方体贴图它包含6个2D纹理 这每个2D纹理是一个立方体 cube 的一个面 也就是说它是一个
  • go+vue自建运维管理平台

    文章目录 鲁班运维平台 容器管理 集群管理 namespace管理 节点管理 工作负载 存储管理 网络管理 配置管理 事件中心 kuboard 鲁班运维平台 这个平台和spug很像 感觉就像是spug运维平台的容器版本 但是如果是容器平台则
  • js基础——运算符

    一 判断一个变量是否为数值 使用 isNaN 判断一个变量是不是数值 is not a number 语法 isNaN x 作用 检测x是否是非数字 是非数字结果是true 不是非数字结果是false 即数字返回为false 不是数字返回为
  • Bad owner or permissions on C:\\Users\\USER/.ssh/config on Windows

    Bad owner or permissions on C Users USER ssh config 问题描述 由于使用vscode远程连接服务器突然新增了C Users USER ssh config 再powershell cmd下面
  • leetcode刷题(8.13总结)

    1 有效的括号 题目描述 https leetcode cn problems valid parentheses class Solution def isValid self s str gt bool stack count 0 if