测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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"; }
上一题 下一题