蓝桥杯例题七

embedded/2025/2/5 10:20:57/

🌟 "没有人能定义你的天际线,除了你自己。
别把光芒寄托在别人的灯盏里,你的火种就藏在胸膛深处——哪怕此刻只是微弱的星点,也足够燎尽荒原。所谓奇迹,不过是凡人用不肯低头的倔强,在命运岩层上凿出的裂缝。

🌊 潮汐有退时,但大海从未停止积蓄力量;日子会暗淡,可你眼里的光要永远清澈。与其等待风暴过去,不如学会在雨中起舞。那些被汗水浸透的清晨,那些与自我较劲的深夜,都在不动声色地重塑着你生命的密度。

🔥 记住:深渊也可以是梯田,只要你愿意种下勇气的种子;伤疤终将变成铠甲,当你学会与疼痛温柔对峙。别怕走得慢,所有抵达远方的人,最初都只是迈出了第一步。

🌠 把『不可能』拆开,里面藏着『可能』的密码;把『平凡』倒过来,便看见『非凡』的棱角。你要做的不是追赶太阳,而是让自己成为发光体——当千帆过尽,那个在风暴中依然挺直脊梁的身影,会比任何旗帜都更接近天空。

你生来就是自己的史诗,笔尖永远攥在掌心。 ✨

蓝桥杯官网蓝桥杯大赛 — 全国大学生TMT行业赛事

刷题力扣 (LeetCode) 全球极客挚爱的技术成长平台

目录

题目13:接雨水

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

题目14:字符串解码

背景描述:

输入格式:

输出格式:

样例输入:

样例输出:

解答过程:

Python代码实现及详细注释:

总结


题目13:接雨水

背景描述:

给定 n 个非负整数表示每个柱子的高度,计算这些柱子能接住多少雨水。

输入格式:

第一行包含一个整数 n (1 <= n <= 10^5),表示柱子的数量。 第二行包含 n 个非负整数,表示每个柱子的高度。

输出格式:

输出一个整数,表示这些柱子能接住的总雨水量。

样例输入:
6
0 1 0 2 1 0 1 3 2 1 2 1
样例输出:
6
解答过程:

双指针法 是解决此类问题的有效方法。通过维护左右两个指针以及左右的最大高度来计算每个位置能接住的水量。

步骤:

  1. 初始化:
    • 设置两个指针 left 和 right 分别指向数组的两端,同时设置 left_max 和 right_max 分别记录左边和右边的最大高度。
  2. 遍历数组:
    • 当 height[left] < height[right] 时,更新 left_max 并计算当前位置的储水量;否则,更新 right_max 并计算右侧的储水量。
  3. 结果:
    • 累加所有位置的储水量即为最终答案。
Python代码实现及详细注释:
def trap(height):if not height:return 0left, right = 0, len(height) - 1left_max, right_max = height[left], height[right]water_trapped = 0while left < right:if height[left] < height[right]:left += 1left_max = max(left_max, height[left])water_trapped += left_max - height[left]else:right -= 1right_max = max(right_max, height[right])water_trapped += right_max - height[right]return water_trapped# 示例输入
height = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]# 调用函数并打印结果
print(trap(height))  # 输出: 6

题目14:字符串解码

背景描述:

给定一个经过编码的字符串,返回解码后的字符串。编码规则为: k[encoded_string],表示将 encoded_string 重复 k 次。注意,k 保证是一个正整数。

输入格式:

输入一行包含一个编码后的字符串 s,其中 s 只包含小写字母和数字 []

输出格式:

输出一行,表示解码后的字符串。

样例输入:
3[a]2[bc]
样例输出:
aaabcbc
解答过程:

是解决此类问题的有效方法。我们使用栈来存储当前正在构建的字符串和重复次数。

步骤:

  1. 初始化:
    • 创建一个空栈用于存储中间结果和重复次数。
  2. 遍历字符串:
    • 对于每一个字符,如果是数字,则更新当前的重复次数;如果是字母,则将其添加到当前字符串中;如果是 [,则将当前字符串和重复次数压入栈,并重置它们;如果是 ],则从栈中弹出上一次的结果,并根据重复次数构建新的字符串。
  3. 结果:
    • 最终栈中的结果或当前字符串即为解码后的字符串。
Python代码实现及详细注释:
def decode_string(s):stack = []current_num = 0current_string = ""for char in s:if char.isdigit():current_num = current_num * 10 + int(char)elif char == '[':stack.append((current_string, current_num))current_string = ""current_num = 0elif char == ']':prev_string, num = stack.pop()current_string = prev_string + num * current_stringelse:current_string += charreturn current_string# 示例输入
s = "3[a]2[bc]"# 调用函数并打印结果
print(decode_string(s))  # 输出: aaabcbc

总结

这两个题目分别涉及了不同的算法思想和技巧:

  • 接雨水 使用了双指针法,适用于处理需要动态调整边界条件的问题。
  • 字符串解码 使用了栈,这是一种常见的用于处理嵌套结构的方法,特别适合用于解析和构建复杂的数据结构。

http://www.ppmy.cn/embedded/159721.html

相关文章

Qt跨屏窗口的一个Bug及解决方案

如果我们希望一个窗口覆盖用户的整个桌面&#xff0c;此时就要考虑用户有多个屏幕的场景&#xff08;此窗口要横跨多个屏幕&#xff09;&#xff0c;由于每个屏幕的分辨率和缩放比例可能是不同的&#xff0c;Qt底层在为此窗口设置缩放比例&#xff08;DevicePixelRatio&#xf…

在Ubuntu上使用Docker部署DeepSeek

在Ubuntu上使用Docker部署DeepSeek&#xff0c;并确保其可以访问公网网址进行对话&#xff0c;可以按照以下步骤进行&#xff1a; 一、安装Docker 更新Ubuntu的软件包索引&#xff1a; sudo apt-get update安装必要的软件包&#xff0c;这些软件包允许apt通过HTTPS使用存储库…

笔记day6

文章目录 1 复习&#xff1a;2 动态开发面包屑中的分类名3 动态开发面包屑中的关键字4 排序操作4.1 问题&#xff1a;order属性的属性值最多有多少种写法4.2 问题&#xff1a;谁应该有类名4.3 问题&#xff1a;谁应该有箭头4.4 问题&#xff1a;箭头用什么制作 1 复习&#xff…

《苍穹外卖》项目学习记录-Day7缓存套餐

如果使用EHCache作为缓存实现&#xff0c;只需要导入 EHCache的maven坐标。 入门案例 如果使用Spring cache缓存数据&#xff0c;key的生成&#xff1a;userCache::xxx。#user.id中的.叫做对象导航。 因为id是自增的所以只输入age和name就可以了&#xff0c;在插入完之后它会把…

详解Kafka并行计算架构

引言 在高流量的复杂场景下&#xff0c;Kafka 凭借卓越的性能表现脱颖而出&#xff0c;始终维持着极高的吞吐率和高效的消息消费能力&#xff0c;在众多消息队列产品中独树一帜。其稳定且强大的性能&#xff0c;不仅保障了海量数据的快速处理&#xff0c;还为各类业务的高效运行…

【cran Archive R包的安装方式】

cran Archive R包的安装方式 添加链接描述 1.包被cran移除 2.包要求的R语言版本与你电脑上的版本不相符 ad archive包的网址或者是下载到工作目录下&#xff0c;ad等于文件名 install,packages(ad repos NULL)

Java小白入门教程:LinkedList

目录 一、定义 二、作用 1、存储数据 2、动态扩容 3、提供方便的操作方法 三、使用场景 1.当你需要频繁地在列表的开头或结尾添加或删除元素时。 2.当你不需要按索引快速访问元素时&#xff0c;因为LinkedList访问元素需要从头开始遍历 3.当你不需要线程安全的数据结构…

关于matlab中rotm2eul的注释错误问题

在这里&#xff0c;写的是默认的旋转矩阵的顺序为‘ZYX’&#xff0c;对应的旋转轴的顺序为Z、Y、X。 包括网页上写的是 但是实际上&#xff0c;在实际的应用中&#xff0c;旋转的顺序应该是&#xff0c;X、Y、Z轴的顺序 即RRzRyRx 但是在矩阵运算中&#xff0c;由于YRzRyRx*X…