图书馆终于建成了,可以自习的教室也多了。所以,往常从不自习的Roam也开始上自习了。图书馆的自习室虽然很大而且座位众多,但找到满意座位也确实能算一门学问……
由于Roam找座不是很有经验,而且他还有一些特殊的要求,所以Roam希望你来帮他选择座位。
Roam 对于座位的要求有:
- 旁边有另一个空座位,可以是左边,也可以是右边(放书包用的...);
- 为了环境相对稳定,满足要求1的同时,Roam的座位必须是离两边过道最远的;
- 在教室的最后一排 (-__-!)。
为了使问题更加明确,我们做以下假定:
- 只考虑教室最后一排中间部分的座位,两边就是过道;
- 每个座位都有一个编号,若有N(1<=N<=50)个座位,则座位编号从左到右依次为 0,1,2,…,N-1.
- 输入数据使用一个长度等于座位数的字符串 Seat 表示,字符串中的每一个字符对应一个座位的状态,其中的E(大写字母)表示座位没人,P(大写字母)表示座位已经有人了。
例如:Seat="EPEPEEE" 表示以下的情况:
Empty | People | Empty | People | Empty | Empty | Empty |
0 | 1 | 2 | 3 | 4 | 5 | 6 |
现在需要你来找出满足Roam要求的座位的编号。
数据输入
输入包括多组数据。
每组数据输入数据的第一行是一个数字N,(1<=N<=50),表示该教室最后一排有N个座位。第二行是一个字符串,表示字符串seat。
输出数据
对于每组输出数据,输出只有一行,即为你所找到的座位的编号。如果有多个符合条件的座位,则仅输出其中编号最小的那个。
- 如果有多个符合条件的座位,则仅输出其中编号最小的那个;
- 如果不存在这样的座位,输出-1。
样例输入
7 EPEPEEE 6 PEPPEP
样例输出
4 -1
解法一:这题我WA了好几次,实在是不知道自己哪错了,郁闷啊
我是从第一个位置开始找,把找到适合的都记下,最后找出编号最小的
下面是我WA的代码:
不知道我这样想有没有错,测了很多数据都会对
解法二:最后找到了一个正解,这种解法是从中间开始向2边搜索,搜到就输出这个位置的编号,搜索也就结束了
代码如下: