数据结构与算法python版 MOOC 第四周

四、基本线性结构-下

本系列博客基于“ (北京大学)数据结构与算法python版”慕课,课程在中国大学慕课bilibili上均可找到。

1. 内容

  1. 讲解队列的结构与性质,双端队列
  2. 队列应用:击鼓传花,打印任务
  3. 讲解无序表的结构与性质 list,无序表链表实现,有序表链表实现

2. 课程代码

GitHub中下载

3. OJ作业

所有代码均可在github中下载

3.1 有序队列

题目内容:
   一开始给出了一个由小写字母组成的字符串 S。我们规定每次移动中,选择最左侧的字母,将其从原位置移除,并加到字符串的末尾。这样的移动可以执行任意多次返回我们移动之后可以拥有的最小字符串(注:在Python3中,字符串的大小可用不等号比较)。

输入格式:
S。S为仅含有小写字母的字符串,长度不超过100000。
输出格式:
一个与S等长的字符串。

输入样例:
“cba”
输出样例:
acb

方法:将字符串看作队列,记录当前最小的字符串,每次移动后都比较改变最小字符串

def min_string(in_string):
    min_str = in_string
    for i in range(len(in_string)):  # 移动string长度那么多次
        move_item = in_string[0]
        in_string = in_string[1:]+move_item
        if min_str > in_string:  # 如果现在存储的min比现在移动后的要大 则更换min
            min_str &#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值