题目链接
https://www.lanqiao.cn/problems/101/learning/?page=1&first_category_id=1&name=%E6%8B%89%E9%A9%AC%E8%BD%A6
题目内容
解题思路
按照出牌规则模拟写代码即可。容易漏的是,当A空的时候,并且桌子上没有可以获得的牌子的时候就已经可以跳出来了,B不用再出牌,没跳出来的话,B就会少了一张牌子,导致没通过。
import os
import sys
# 请在此输入您的代码
A = list(input())
B = list(input())
# print(A,B)
flag_A = 1 # A先出牌
flag_B = 0
chupai = list()
while A != [] and B != []:
if flag_A:
flag_A = 0
flag_B = 1
A_chupai = A.pop(0)
if A_chupai in chupai:
# 找到出的牌子在序列中的位置
position = chupai.index(A_chupai)
chupai.append(A_chupai)
huo_paizi = chupai[position:]
A.extend(huo_paizi[::-1])
# 更新牌
chupai = chupai[:position]
flag_A = 1
flag_B = 0
else:
chupai.append(A_chupai)
if A == []:
break
if flag_B:
flag_B = 0
flag_A = 1
B_chupai = B.pop(0)
if B_chupai in chupai:
# 找到出的牌子在序列中的位置
position = chupai.index(B_chupai)
chupai.append(B_chupai)
huo_paizi = chupai[position:]
B.extend(huo_paizi[::-1])
# 更新牌
chupai = chupai[:position]
flag_B = 1
flag_A = 0
else:
chupai.append(B_chupai)
if B == []:
break
if A:
print(''.join(A))
elif B:
print(''.join(B))