小T在一个二维迷宫中。场外的小A帮他分析了迷宫并给他发送了一串长度为N的代码X,字符串X只由两个字符'S'和'R'组成。 S表示向面朝方向执行一格。 R表示右转90° 小T刚开始在原点(0,0)处,面朝x轴正方向,按顺序执行小A的代码。 输出小T最后的位置。 输入 第一行一个整数N 第二行一行字符串X 1\le N \le 10^51≤N≤10 5 保证X只由字符S和R组成 输出 输出小T最后的位置
时间: 2024-02-11 19:07:16 浏览: 87
以一个mXn的长方阵表示迷宫, 0和1分别表示迷宫中的通路和障碍 设 计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路
好的,根据你的要求,我来给出解题思路和代码实现。
我们可以使用两个变量x和y来记录小T的坐标,使用一个变量dir来记录小T当前面朝的方向,0表示向x轴正方向,1表示向y轴正方向,2表示向x轴负方向,3表示向y轴负方向。
对于代码中的每个字符,如果是'S',则根据dir的值来更新x和y的值;如果是'R',则将dir的值加1,但需要注意dir的范围是0到3,如果dir加1后超过了3,则需要将dir赋值为0。
代码实现如下:
```
#include <iostream>
using namespace std;
int main() {
int n, x = 0, y = 0, dir = 0;
cin >> n;
string s;
cin >> s;
for (int i = 0; i < n; i++) {
if (s[i] == 'S') {
if (dir == 0) x++;
else if (dir == 1) y++;
else if (dir == 2) x--;
else y--;
} else {
dir++;
if (dir > 3) dir = 0;
}
}
cout << x << " " << y << endl;
return 0;
}
```
输入样例:
```
6
SSRSRS
```
输出样例:
```
1 2
```
希望可以帮到你!
阅读全文