自己看了半天可以算出来,但是如果代码编就觉得很难实现,比较复杂。
后面在李老师的指导下,找到其中的规律,要去从输出找规律。
当第一个字符是R时,输出的是递增的数,且输出的数目个数是R的个数,但是当字符串中出现R时,输出也是递增的数,但数目个数是R的个数减一。当遇到L时,输出的是递减的数,数目个数要比L的数目多一个。
代码:
#include <stdio.h>
int main()
{
int n,i=1,j,begin=1,counterr=0,coumterl=0;
char s[200010];
scanf("%d",&n);
scanf("%s",s+1);
if(s[1]=='R')
{
while(s[i]=='R')
{
printf("%d\n",i++);
begin++;
}
}
loop:
counterr=0;
while(s[i]=='R')
{
i++;
counterr++;
begin++;
}
if(counterr>1)
{
for(j=1;j<counterr;j++)
{
printf("%d\n",begin-counterr+j);
}
}
while(s[i]=='L')
{
coumterl++;
i++;
begin++;
}
for(j=0;coumterl>=0;coumterl--,j++)
{
printf("%d\n",begin-j);
}
if(i!=n)
{
coumterl=0;
goto loop;
}
return 0;
}