OD C卷 - 幼儿园篮球游戏

幼儿园篮球游戏

  • 有一个放倒的线性圆桶,可以从右边放入一个或者多个篮球,每个篮球有独立的编号;
  • 从右边和左边可以取出篮球,当只有一个篮球时,只能从左边取出;
  • 若依次放入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
思路:

双指针

python 复制代码
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 = 0
 
result = ""
i=0
while(True):
    if(i>=len(nums)):
        break
    else :
        arr[right] = nums[i]
        right+=1
        while (True) :
            if(right <= left):
                break
            else :
                if (arr[left] == target_nums[target_pos]) :
                  result += "L"
                  left += 1
                  target_pos += 1
                  continue
                elif (arr[right-1] == target_nums[target_pos]) :
                  result += "R"
                  right -= 1
                  target_pos += 1
                  continue
                 
                break
    i+=1
 
if (left != right) :
  print("NO")
else :
  print(result)
 
相关推荐
此去经年ToT16 天前
1004.最大连续1的个数Ⅲ
数据结构·算法·leetcode·双指针·滑动窗口
laufing25 天前
OD C卷 - 结对编程
python算法·条件计算
Tisfy1 个月前
LeetCode 3133.数组最后一个元素的最小值:位运算+双指针
算法·leetcode·二进制·题解·位运算·双指针
laufing1 个月前
OD C卷 - 5G网络建设
·并查集·python算法
laufing1 个月前
OD C卷 - 小扇和小船的数字游戏
二进制·python算法
理论最高的吻1 个月前
167. 两数之和 II - 输入有序数组【 力扣(LeetCode) 】
数据结构·c++·数学·算法·leetcode·双指针
R.S.G.久夏1 个月前
LeetCode面试题Day10|LeetCode125 验证回文串、LeetCode392 判断子序列
c++·算法·leetcode·贪心算法·双指针
理论最高的吻1 个月前
125. 验证回文串【 力扣(LeetCode) 】
c++·算法·leetcode·职场和发展·双指针·回文串
ZZZ_O^O1 个月前
Leetcode每日刷题之 1089. 复写零(C++)
c++·算法·leetcode·双指针