舞伴问题(队列) 男士: (大写字母表示) 女士:(小写字母表示) 霸基:质道壓欲人 Women; InitQueue(M), InitQueue(W) 此串字符(大小写混合,#表示结束) 个字符进行判断,大写字母就入队(Man), 第三步:舞伴配对:Man队列出队一个,对应的vomen队人列也要出队一个(循环执行,结束条件:其中一个队 列变空) DeQueue(M, x), DeQueue(W, x), 结果工 ManB列和women队人列都空,提示”success” 结果2:Man队列为空, • women队列不空,提示:“sorry madam,you should wait' QueueEmpty(M) 结果1:women队列为空,Man队列不空,提示: "sorry sir,you should wait!"
时间: 2024-02-01 07:15:34 浏览: 62
以下是该问题的Python实现:
```python
# 定义队列类
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
if not self.is_empty():
return self.items.pop(0)
def size(self):
return len(self.items)
# 初始化男士队列和女士队列
M = Queue()
W = Queue()
# 输入字符,判断并加入相应队列
while True:
s = input()
if s == "#":
break
elif s.isupper():
M.enqueue(s)
else:
W.enqueue(s)
# 舞伴配对
while not M.is_empty() and not W.is_empty():
man = M.dequeue()
woman = W.dequeue()
print(man + woman)
# 输出结果
if M.is_empty() and W.is_empty():
print("success")
elif M.is_empty():
print("sorry madam, you should wait!")
else:
print("sorry sir, you should wait!")
```
使用样例:
输入:
```
A
b
C
D
e
#
```
输出:
```
Ab
Cd
De
sorry madam, you should wait!
```
阅读全文