题意:

初始在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;
}

Simple And Clear