招行信用卡第一题ac代码

#1思路就是最后肯定在两个相邻的LR处不断循环,找到开始循环的位置,判断从当前点到循环点距离的奇偶,
# 偶数则最后停留在循环点,奇数则最后停留在循环点左侧或者右侧的点
x = input()
#存放答案
ans = [0] * len(x)
#记录每个位置右侧最近的L的位置
leftpos = []
lpos = len(x)
for i in range(len(x)-1,-1,-1):
    if x[i]=='L':
        lpos = i
    leftpos.insert(0,lpos)
#每个位置左侧最近的R的位置
rightpos = []
rpos = 0
for i in range(len(x)):
    if x[i]=='R':
        rpos= i
    rightpos.append(rpos)
    
for i in range(len(x)):
    if x[i] == 'R':
        #找到离当前位置最近的L的位置
        lpos = leftpos[i]
        if (lpos-i)%2==0:
            ans[lpos]+=1
        else:
            ans[lpos-1] += 1
    if x[i]=='L':
        #找到离当前位置最近的R的位置
        rpos = rightpos[i]
        if (i-rpos)%2==0:
            ans[rpos]+=1
        else:
            ans[rpos+1] += 1
ans = list(map(str,ans))
print (' '.join(ans))
0 offer的菜鸡表示现在能赚到牛客积分就一本满足了
第二三题完全没思路啊啊啊 希望能拿到有道的意向书
#GE##笔试题目##秋招##求面经#
全部评论
点赞 回复
分享
发布于 2019-09-15 22:34

相关推荐

1 9 评论
分享
牛客网
牛客企业服务