链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992
题意:
走迷宫,一个一维字符串迷宫,由'L'、'R'组成,分别代表向左一步、向右一步,若遇见”死胡同“,可将当前字符替换,比如'L'换成'R',‘R’换成‘L’,从始发地出发,求最少替换多少个字符就可以走出迷宫。
思路:
从起点分别向左向右简单模拟即可。
代码:
#include<iostream> #include<cstdio> using namespace std; int t,n,m; int L(string s) { int sum=0; for(int i=m-1;i>0;i--) if(s[i]=='R') sum++; return sum; } int R(string s) { int sum=0; for(int i=m-1;i<n-1;i++) if(s[i]=='L') sum++; return sum; } int main() { string s; cin>>t; while(t--) { cin>>n>>m>>s; printf("%d ",R(s)>L(s)?L(s):R(s)); } return 0; }