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)
 
相关推荐
程序员-King.1 天前
day49—双指针+贪心—验证回文串(LeetCode-680)
算法·leetcode·贪心算法·双指针
程序员-King.4 天前
day48—双指针-通过删除字母匹配到字典最长单词(LeetCode-524)
算法·leetcode·双指针
_extraordinary_9 天前
笔试专题(十)
双指针·区间dp·线性dp
ゞ 正在缓冲99%…13 天前
leetcode167.两数之和||
java·算法·leetcode·双指针
想成为配环境大佬15 天前
P8697 [蓝桥杯 2019 国 C] 最长子序列
算法·蓝桥杯·双指针
Repeat71521 天前
日志统计(双指针)
java·数据结构·算法·蓝桥杯·双指针·滑动窗口
ゞ 正在缓冲99%…23 天前
leetcode76.最小覆盖子串
java·算法·leetcode·字符串·双指针·滑动窗口
写bug的小屁孩1 个月前
移动零+复写零+快乐数+盛最多水的容器+有效三角形的个数
c++·算法·双指针
_extraordinary_1 个月前
笔试专题(四)
算法·动态规划·贪心·模拟·排序·双指针
JLU_LYM1 个月前
有序数组双指针问题
排序·双指针·有序数组