一条长度为n的直线,你一开始在位置m上
其中每个整点都有一个字符'L'或'R',如果是'L'那么你必须往左走一步,否则往右走一步
如果你到达位置1或位置n你任务就完成了
不过有可能你永远到不了1或n,比如RRRRLLLL这样的情况
但你可以修改字符
求能完成任务的最小修改次数
思路:
如果往右走,那么必须将你及你右边所有字符全部改成'R'(除了第n个)
往左走同理,比较一下就好了
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char str[100005];
int main(void)
{
int T, n, m, i, s1, s2;
scanf("%d", &T);
while(T--)
{
scanf("%d%d%s", &n, &m, str+1);
s1 = s2 = 0;
for(i=m;i<=n-1;i++)
{
if(str[i]=='L')
s1++;
}
for(i=m;i>=2;i--)
{
if(str[i]=='R')
s2++;
}
printf("%d\n", min(s1, s2));
}
return 0;
}