题目内容:
一开始给出了一个由小写字母组成的字符串 S。我们规定每次移动中,选择最左侧的字母,将其从原位置移除,并加到字符串的末尾。这样的移动可以执行任意多次
返回我们移动之后可以拥有的最小字符串(注:在Python3中,字符串的大小可用不等号比较)。
输入格式:
S。S为仅含有小写字母的字符串,长度不超过100000。
输出格式:
一个与S等长的字符串。
输入样例:
“cba”
输出样例:
acb
代码:
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
return self.items.pop(0)
def isEmpty(self):
return self.items == []
def size(self):
return len(self.items)
def OrderedQueue(S):
min_s = S
queue = Queue()
for lowercase in S:
queue.enqueue(lowercase)
for i in range(len(S)):
queue.enqueue(queue.dequeue())
new_s = ''.join(queue.items)
if new_s < min_s:
min_s = new_s
return min_s
代码运行时间过长,需要改进