def mro(s: str):
n = len(s)
ls = s.count('L')
ps = n - ls
result_left = []
result_right = []
ls_seen = 0
ps_seen = 0
for i, c in enumerate(s[:ls]):
result_left.append(2 * (i - ls_seen))
if c == 'L':
ls_seen += 1
else:
result_left[-1] += 1
for i, c in enumerate(s[::-1][:ps]):
result_right.append(2 * (i - ps_seen))
if c == 'P':
ps_seen += 1
else:
result_right[-1] += 1
result = result_left + result_right[::-1]
return result
n = int(input())
s: str = input()
result = mro(s)
print(' '.join([str(x) for x in result]))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | def mro(s: str): n = len(s) ls = s.count('L') ps = n - ls result_left = [] result_right = [] ls_seen = 0 ps_seen = 0 for i, c in enumerate(s[:ls]): result_left.append(2 * (i - ls_seen)) if c == 'L': ls_seen += 1 else: result_left[-1] += 1 for i, c in enumerate(s[::-1][:ps]): result_right.append(2 * (i - ps_seen)) if c == 'P': ps_seen += 1 else: result_right[-1] += 1 result = result_left + result_right[::-1] return result n = int(input()) s: str = input() result = mro(s) print(' '.join([str(x) for x in result])) |
English