幼儿园篮球游戏
- 有一个放倒的线性圆桶,可以从右边放入一个或者多个篮球,每个篮球有独立的编号;
- 从右边和左边可以取出篮球,当只有一个篮球时,只能从左边取出;
- 若依次放入1、2、3、4、5共五个编号的篮球,则可以依次取出1、2、3、4、5或者3、1、2、4、5;无法取出5 1 3 2 4编号的篮球;3 1 2 4 5 取出的场景为RLLLL,R表示右边取,L表示左边取;
输入描述:
第一行为依次放入的篮球编号;
第二行为依次取出的编号;
输出描述:
输出取的R/L序列;若无法取出,则输出No
示例1
输入:
4,5,6,7,0,1,2
6,4,0,1,2,5,7
输出:
RLRRRLL
示例2
输入:
4,5,6,7,0,1,2
6,0,5,1,2,4,7
输出:
No
示例3:
输入:
1,2,3,4
1,2,3,5
输出:
No
思路:
双指针
nums = [int(x) for x in input().split(",")]
target_nums = [int(x) for x in input().split(",")]arr = [float('inf') for i in range(300)]left = 0
right = 0
target_pos = 0result = ""
i=0
while(True):if(i>=len(nums)):breakelse :arr[right] = nums[i]right+=1while (True) :if(right <= left):breakelse :if (arr[left] == target_nums[target_pos]) :result += "L"left += 1target_pos += 1continueelif (arr[right-1] == target_nums[target_pos]) :result += "R"right -= 1target_pos += 1continuebreaki+=1if (left != right) :print("NO")
else :print(result)