四、基本线性结构-下
本系列博客基于“ (北京大学)数据结构与算法python版”慕课,课程在中国大学慕课和bilibili上均可找到。
1. 内容
- 讲解队列的结构与性质,双端队列
- 队列应用:击鼓传花,打印任务
- 讲解无序表的结构与性质 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 &#