A21230. 移动坐标
填空题
中等
知识点
题目描述
移动坐标
题目描述
在平面直角坐标系中,x 轴正方向为东,y 轴正方向为北。
小蓝从点 (0,0) 出发,初始面向东方。
给定一个长度为 n 的字符串 t,仅包含字符 S(直行)和 R(右转)。
小蓝按顺序处理每个字符:
若字符为 S,则朝当前方向前进 1 个单位长度;
若字符为 R,则原地向右转 90∘,方向变化规则为:
东 → 南
南 → 西
西 → 北
北 → 东
请输出小蓝执行完所有指令后的坐标 (x,y)。
输入格式
第一行:整数 n
第二行:字符串 t
输出格式
两个整数 x y,用空格隔开
输入样例#1
4
SRS输出样例#1
2 -1输入样例#2
20
SRSRSRSSRSRRRRRSRR输出样例#2
0 1说明提示
1≤n≤105 1≤n≤105 ; t 仅包含 S 和 R
参考答案
#include<iostream>
int main()
{
int n;
std::cin >> n;
int x = 0;
int y = 0;
int dx = 1;
int dy = 0;
while (n --> 0)
{
char c;
std::cin >> c;
if (c == 'S')
{
x += dx;
y += dy;
}
else if (c == 'R')
{
if (dy == 0)
{
dy = -dx;
dx = 0;
}
else {
dx = dy;
dy = 0;
}
}
}
std::cout << x << " " << y << "\n";
}
上一题
下一题