前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以前收入高,但毫无上进心,40岁一身房贷,被裁后找个小公司,天天担心试用期过不了,焦虑地睡不着!

以前收入高,但毫无上进心,40岁一身房贷,被裁后找个小公司,天天担心试用期过不了,焦虑地睡不着!

作者头像
五分钟学算法
发布2024-01-17 14:53:20
1130
发布2024-01-17 14:53:20
举报
文章被收录于专栏:五分钟学算法五分钟学算法

大家好,我是吴师兄。

最近在网上看到一篇帖子,楼主的文字里透漏出无尽的懊悔,或许这就是年少浮躁的我们,并不能完全理解晦涩的古文,无法理解少壮不努力老大徒伤悲,懵懵懂懂学到的知识,在长大后某个瞬间突然涌现,像一颗子弹,正中眉心

在职场年龄大了,确实求职的机会少,要么努力学习会增加一些求职的概率,要么寻找第二职业,要么减少花销增加积蓄抵御风险。

千万不要裸辞,尽可能的上班摸鱼学习吧,来刷一道算法题

题目描述如下:

幼儿园里有一个放倒的圆桶,它是一个线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出。每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮球取出,当桶里只有一个篮球的情况下,必须从左边取出。 如老师按顺序放入1、2、3、4、55个编号的篮球,那么小朋友可以依次取出的编号为1、2、3、4、5或者3、1、2、4、5编号的篮球,无法取出5、1、3、2、4编号的篮球 其中3、1、2、4、5的取出场景为: 连续放入1、2、3号 -> 从右边取出3号 -> 从左边取出1号 -> 从左边取出2号 -> 放入4号 -> 从左边取出4号 -> 放入5号>从左边取出5号,简单起见,我们以L表示左,R表示右,此时的篮球的依次取出序列为"RLLLL"

篮球只能从右边放入,但可以同时从左边和右边拿出,这显然是一个具有限制条件的双向队列

输入的第一行为入队顺序,输入的第二行为出队顺序。

题目本质上是要求模拟整个入队、出队过程,有点类似于队列版的LeetCode 946、验证栈序列

代码如下:

代码语言:javascript
复制
from collections import deque

# 入队顺序
push_list = list(map(int, input().split(",")))
# 出队顺序
pop_list = list(map(int, input().split(",")))
# 序列的个数
n = len(push_list)

# 初始化一个队列
q = deque()

# 初始化答案字符串
ans = str()

# 表示出队序列的索引,初始化为0
pop_idx = 0

# 从头到尾遍历入队序列的元素push_num
for push_num in push_list:
    # 将push_num加入队列中,注意只能从队列右端加入
    q.append(push_num)

    # 进行循环
    while len(q) > 0:
        # 判断队头、队尾元素情况
        # 注意:此处一定要先判断队头
        # 因为当队列中仅剩一个元素时,从左边出队
        # 若【队头元素】等于下一个出队元素
        if q[0] == pop_list[pop_idx]:
            # 该元素从左边出队
            q.popleft()
            # 出队序列移动到下一个位置
            pop_idx += 1
            # 更新答案
            ans += "L"
        # 若【队尾元素】等于下一个出队元素
        elif q[-1] == pop_list[pop_idx]:
            # 该元素从右边出队
            q.pop()
            # 出队序列移动到下一个位置
            pop_idx += 1
            # 更新答案
            ans += "R"
        # 如果队头、队尾元素均不等于下一个出队元素
        # 退出循环
        else:
            break

# 退出上述循环后,如果ans长度为n
# 说明所有小球都可以正常出队、入队,输出ans序列的结果
# 否则输出"NO"
print(ans) if len(ans) == n else print("NO")

我总结并录制了 100 道 LeetCode 高频算法题,涵盖了数组、链表、栈、队列、二叉树、回溯算法、动态规划等众多高频知识点,所选的题目也是非常有特征的题目,一题抵十题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五分钟学算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档