题意:
初始在x = 0 的位置,
给出n 和n个操作,
每个操作有L,R两种,分别表示
L:x-1
R:x+1
然后给出操作序列,比如:LRLR
并不是每一个操作都会被执行,可能一个都不执行,也可能执行其中的任意两个。
要求求出结束时,x所有可能的值共有几种?
如果序列是LRLR,最后的位置可能用5种。0,1,-1,2,-2
分析:
因为每一个操作都是移动一格,所以不管顺序是什么样的,
如果向右的最大可能距离是5,那么1~5每个位置都有可能达到。
同理 ,左边也是一样的。最后在加上原点的位置的好了。
所以值需要分别统计L,R的个数,表示向左或向右所能达到的最远距离。
代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n, cntL = 0, cntR = 0;
string s;
cin >> n >> s;
for (int i = 0; i < n; i++)
{
if (s[i]=='L')
cntL++;
else
cntR++;
}
cout << cntL + cntR + 1 << endl;
return 0;
}
Comments | NOTHING