https://vjudge.net/contest/203034#problem/L
给出一个LR串,给一个起始位置,站在L上就会往左移动,R同理,可以进行若干次操作将某个R变成L或将L变成R,求最少操作次数能够使得从起点走到串的头或尾。
关键在于如果想要走到左边就需要连续的L 右边则需要连续的R,只要统计起点左边的R和右边的L的个数找最小即可。
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int T;
int n,m;
char a[111111];
int main()
{
cin>>T;
while(T--)
{
cin>>n>>m;
cin>>a;
int res1=0;
int res2=0;
for(int i=m-1;i<n-1;i++)
{
if(a[i]=='L')
res1++;
}
for(int i=1;i<m;i++)
{
if(a[i]=='R')
res2++;
}
cout<<min(res1,res2)<<endl;
}
return 0;
}