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)
 
相关推荐
递归尽头是星辰4 天前
双指针与滑动窗口算法精讲:从原理到高频面试题实战
算法·双指针·滑动窗口·子串/子数组问题
pusue_the_sun4 天前
每日算法题推送
算法·双指针
爱编程的化学家6 天前
代码随想录算法训练营第六天 - 哈希表2 || 454.四数相加II / 383.赎金信 / 15.三数之和 / 18.四数之和
数据结构·c++·算法·leetcode·双指针·哈希
林木辛7 天前
LeetCode热题 15.三数之和(双指针)
算法·leetcode·双指针
3Cloudream8 天前
LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解
算法·leetcode·字符串·双指针·滑动窗口·哈希表·中等
Q741_14722 天前
C++ 力扣 76.最小覆盖子串 题解 优选算法 滑动窗口 每日一题
c++·算法·leetcode·双指针·滑动窗口
源代码•宸23 天前
Leetcode—1163. 按字典序排在最后的子串【困难】
经验分享·算法·leetcode·双指针
KarrySmile24 天前
Day8--HOT100--160. 相交链表,206. 反转链表,234. 回文链表,876. 链表的中间结点
数据结构·算法·链表·双指针·快慢指针·hot100·灵艾山茶府
迷鹿鲲1 个月前
最短无序连续子数组+双指针
双指针
Q741_1471 个月前
C++ 力扣 438.找到字符串中所有字母异位词 题解 优选算法 滑动窗口 每日一题
c++·算法·leetcode·双指针·滑动窗口