Python每日一练(20230423)

news2024/11/20 6:16:57

目录

1. 删除链表的倒数第 N 个结点  🌟🌟

2. 最小覆盖子串  🌟🌟🌟

3. 二叉树的层序遍历  🌟🌟

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

进阶:你能尝试使用一趟扫描实现吗?

示例 1:

输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1
输出:[]

示例 3:

输入:head = [1,2], n = 1
输出:[1]

提示:

  • 链表中结点的数目为 sz
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz

出处:

https://edu.csdn.net/practice/26319573

代码:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
class LinkList:
    def __init__(self):
        self.head=None
    def initList(self, data):
        self.head = ListNode(data[0])
        r=self.head
        p = self.head
        for i in data[1:]:
            node = ListNode(i)
            p.next = node
            p = p.next
        return r
    def convert_list(self,head):
        ret = []
        if head == None:
            return
        node = head
        while node != None:
            ret.append(node.val)
            node = node.next
        return ret
class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        v = ListNode(0, head)
        handle = v
        index = []
        while v is not None:
            index.append(v)
            v = v.next
        pre = len(index)-n-1
        next = len(index)-n+1
        index[pre].next = index[next] if next >= 0 and next < len(
            index) else None
        return handle.next
# %%
l = LinkList()
list1 = [1,2,3,4,5]
head = l.initList(list1)
n = 2
s = Solution()
print(l.convert_list(s.removeNthFromEnd(head, n)))

输出:

[1, 2, 3, 5]


2. 最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。

注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。

示例 1:

输入:s = "ADOBECODEBANC", t = "ABC"
输出:"BANC"

示例 2:

输入:s = "a", t = "a"
输出:"a"

提示:

  • 1 <= s.length, t.length <= 105
  • s 和 t 由英文字母组成

进阶:你能设计一个在 o(n) 时间内解决此问题的算法吗?

以下程序实现了这一功能,请你填补空白处内容:

```python
class Solution(object):
    def minWindow(self, s, t):
        ls_s, ls_t = len(s), len(t)
        need_to_find = [0] * 256
        has_found = [0] * 256
        min_begin, min_end = 0, -1
        min_window = 100000000000000
        for index in range(ls_t):
            need_to_find[ord(t[index])] += 1
        count, begin = 0, 0
        for end in range(ls_s):
            end_index = ord(s[end])
            if need_to_find[end_index] == 0:
                continue
            has_found[end_index] += 1
            if has_found[end_index] <= need_to_find[end_index]:
                count += 1
            if count == ls_t:
                begin_index = ord(s[begin])
                ____________________________;
                if window_ls < min_window:
                    min_begin = begin
                    min_end = end
                    min_window = window_ls
        if count == ls_t:
            return s[min_begin:min_end + 1]
        else:
            return ''
if __name__ == '__main__':
    s = Solution()
    print(s.minWindow('a', 'a'))
```

出处:

https://edu.csdn.net/practice/26319574

代码:

class Solution(object):
    def minWindow(self, s, t):
        ls_s, ls_t = len(s), len(t)
        need_to_find = [0] * 256
        has_found = [0] * 256
        min_begin, min_end = 0, -1
        min_window = 100000000000000
        for index in range(ls_t):
            need_to_find[ord(t[index])] += 1
        count, begin = 0, 0
        for end in range(ls_s):
            end_index = ord(s[end])
            if need_to_find[end_index] == 0:
                continue
            has_found[end_index] += 1
            if has_found[end_index] <= need_to_find[end_index]:
                count += 1
            if count == ls_t:
                begin_index = ord(s[begin])
                while need_to_find[begin_index] == 0 or\
                    has_found[begin_index] > need_to_find[begin_index]:
                    if has_found[begin_index] > need_to_find[begin_index]:
                        has_found[begin_index] -= 1
                    begin += 1
                    begin_index = ord(s[begin])
                window_ls = end - begin + 1
                if window_ls < min_window:
                    min_begin = begin
                    min_end = end
                    min_window = window_ls
        if count == ls_t:
            return s[min_begin:min_end + 1]
        else:
            return ''
if __name__ == '__main__':
    s = Solution()
    print(s.minWindow(s = "ADOBECODEBANC", t = "ABC"))
    print(s.minWindow('a', 'a'))

输出:

BANC
a


3. 二叉树的层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

示例:
二叉树:[3,9,20,null,null,15,7],

  3
 / \
9  20
  /  \
 15   7

返回其层序遍历结果:

[
[3],
[9,20],
[15,7]
]

出处:

https://edu.csdn.net/practice/26319575

代码:

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution(object):
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        if not root:
            return []
        queue, res = [root], []
        while queue:
            size = len(queue)
            temp = []
            for i in range(size):
                data = queue.pop(0)
                temp.append(data.val)
                if data.left:
                    queue.append(data.left)
                if data.right:
                    queue.append(data.right)
            res.append(temp)
        return res

def listToTree(lst):
    if not lst:
        return None
    root = TreeNode(lst[0])
    queue = [root]
    i = 1
    while i < len(lst):
        node = queue.pop(0)
        if lst[i] is not None:
            node.left = TreeNode(lst[i])
            queue.append(node.left)
        i += 1
        if i < len(lst) and lst[i] is not None:
            node.right = TreeNode(lst[i])
            queue.append(node.right)
        i += 1
    return root

if __name__ == '__main__':
    s = Solution()
    null = None
    nums = [3,9,20,null,null,15,7]
    root = listToTree(nums)
    print(s.levelOrder(root))

输出:

[[3], [9, 20], [15, 7]]


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

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

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

相关文章

OpenAI最新官方ChatGPT聊天插件接口《插件安全审查流程》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(六)(附源码)

Plugin review process 插件审查流程 前言Plugin review process 插件审查流程What we are looking for in a plugin 我们正在寻找一个插件Plugin states 插件状态Types of users 用户类型Submit a plugin for review 提交一个插件进行审核其它资料下载 前言 在 ChatGPT 中&am…

【原创】【理论+题型】二次型化标准型 +合同

&#xff08;A&#xff09;二次型化标准型2方法对比 1任何二次型都能化为标准&#xff0c;有正交变换法和配方法 2任何二次型都能通过配方法变为标准型&#xff0c;但不一定能通过正交变化法变 3二次型的规范型唯一&#xff0c;标准型不唯一 4实对称阵的(合同)对角化问题&#…

产品预览 | 系统仿真与三维专业场仿真融合——MWORKS模型降阶工具箱

1 引言 近二十年来&#xff0c;数字化技术迅猛发展&#xff0c;以美国和中国提出装备数字工程为标志&#xff0c;人类迈入全新的数字化时代。装备数字化需要对装备的运行状态和行为进行准确的模拟和预测&#xff0c;这就需要利用系统仿真技术。系统仿真技术能够综合考虑装备的…

Golang每日一练(leetDay0044)

目录 130. 被围绕的区域 Surrounded Regions &#x1f31f;&#x1f31f; 131. 分割回文串 Palindrome Partitioning &#x1f31f;&#x1f31f; 132. 分割回文串 II Palindrome Partitioning II &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专…

启扬方案:瑞芯微3568智慧安防NVR设备解决方案

物联网技术和人工智能技术的发展和应用&#xff0c;让安防行业的视频监控从简单的看见画面到自动识别智能研判&#xff0c;大大地提高视频监控的智能化&#xff0c;提升监控效率。随着智慧城市、智慧交通、智慧社区等项目的实施&#xff0c;面对道路交通、银行、家庭、商场、楼…

App复杂动画实现——Rive保姆级教程 | 京东云技术团队

作者&#xff1a;京东物流 沈明亮 在App开发过程中&#xff0c;如果想实现动画效果&#xff0c;可以粗略分为两种方式。一种是直接用代码编写&#xff0c;像平移、旋转等简单的动画效果&#xff0c;都可以这么干&#xff0c;如果稍微复杂点&#xff0c;就会对开发工程师的数学功…

如何提升电脑使用体验?试试这5款免费软件吧

今天推荐5款实用的开源软件,它们可以极大地提高你的工作和生活效率,让你办公学习的体验更加舒适。 屏幕截图工具——ShareX ShareX是一款免费的开源软件&#xff0c;可以让你快速地捕捉屏幕上的任何区域&#xff0c;并将其保存为图片或视频文件。你还可以使用ShareX来上传你的…

chatgpt智能提效职场办公-ppt怎么做流程图

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 制作PPT流程图的步骤如下&#xff1a; 打开 PowerPoint&#xff0c;选择自己要制作流程图的PPT页面。 在页面中点击“插入”选项卡&am…

gcc编译的过程

文章目录 前言一、gcc 编译四步骤二、gcc编译常用参数三、文件后缀名对应表四、预处理五、编译六、汇编七、链接1、静态链接2、动态链接 前言 GCC 仅仅是一个编译器&#xff0c;没有界面&#xff0c;必须在命令行模式下使用。通过 gcc 命令就可以将源文件编译成可执行文件。 一…

人机识别技术再升级,AIGC为验证码带来万亿种新变化

网上输入关键词“破解验证码”&#xff0c;会出现1740万个搜索结果。“验证码识别、轻松破解、暴力破解、逻辑漏洞破解、简单破解”等等各类关键词的内容&#xff0c;不一而足&#xff0c;关于“如何用破解某某验证码”的帖子更是多如牛毛。 搜索引擎的相关结果 2017年&#xf…

线程池的构造方式

线程池的构造方式 两类构造方式7种实现方法7种线程池的具体使用FixedThreadPoolCachedThreadPoolSingleThreadExecutorScheduledThreadPoolSingleThreadScheduledExecutornewWorkStealingPoolThreadPoolExecutor 说明总结 两类构造方式 在Java语言中&#xff0c;并发编程都是通…

【重新定义matlab强大系列三】MATLAB清洗离群数据(查找、填充或删除离群值)

&#x1f517; 运行环境&#xff1a;matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

异常详解

一、初识异常 异常概念&#xff1a; 所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。 而运行时指的是程序已经编译通过得到 class 文件了, 再由 JVM 执行过程中出现的错误。 1.除以 0 System.out.println(10 / 0); // 执行结果 Exception in thread "…

02 - 学会提问

学会提问 一、引言 1.1 GPT简介 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种基于Transformer架构的大型预训练语言模型。 凭借其强大的文本生成、理解和处理能力&#xff0c;GPT已在诸如自然语言处理、机器翻译、文本摘要等多个领域取得了显著的…

python+vue 高校资助系统

其中各子模块的主要功能如下&#xff1a; 1、用户登录&#xff1a;用户进入系统先输入用户名与密码&#xff0c;选择权限登录&#xff0c;用户登录成功&#xff0c;要记录登录的用户名和登录类型。 2、学生注册&#xff1a;学生注册填写学号、密码、确认密码、学生姓名、邮箱、…

Python小姿势 - Python操作MongoDB数据库

Python操作MongoDB数据库 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。 现在&a…

Leetcode力扣秋招刷题路-0295

从0开始的秋招刷题路&#xff0c;记录下所刷每道题的题解&#xff0c;帮助自己回顾总结 295. 数据流的中位数 中位数是有序整数列表中的中间值。如果列表的大小是偶数&#xff0c;则没有中间值&#xff0c;中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 …

springboot,Flowable 流程实例的激活与挂起(二)

一.简介 接上一篇 springboot&#xff0c;Flowable 流程实例的激活与挂起&#xff08;一&#xff09; 二.流程实例的挂起与激活 1.流程实例的挂起 挂起一个流程实例的代码如下&#xff1a; Test void test08() {List<ProcessDefinition> list repositoryService.cr…

Cycling 74 Max for Mac:音乐可视化编程软件

Cycling 74 Max是一款音乐、视觉、互动艺术等领域中广泛使用的编程语言和应用软件&#xff0c;它允许用户创作和控制实时音频和视频效果、交互式应用程序和媒体艺术品等。 Max将程序设计和可视化编程相结合&#xff0c;通过简单的拖拽和连接方式&#xff0c;用户可以将各种功能…

cuda编码例程(转载借鉴)

内容出处&#xff1a;https://mp.csdn.net/mp_blog/creation/editor 1. 前言 这是一份简单的CUDA编程入门&#xff0c;主要参考英伟达的官方文档进行学习&#xff0c;本人也是刚开始学习&#xff0c;如有表述错误&#xff0c;还请指出。官方文档链接如下&#xff1a; An Eve…