京东笔试 京东笔试题 0810
笔试时间:2024年08月10日
历史笔试传送门:2023秋招笔试合集
第一题
题目
牛牛昨晚喝醉了,走路开始疯狂摇摆,方向也分不清了。假设他所在的地方是一个二维平面,开始它位于坐标为(0,0)的地方,并且面朝北方即y轴正方向。W表示牛牛向前走,A表示牛牛把当前方向向左转90度,D表示牛牛把方向向右转90度,S表示牛牛呆在原地。给出一个字符串表示牛牛的酒后行为方式,你能告诉他走完后它位于哪个坐标点吗?
输入描述
输入仅有一行,一个字符串S(1≤|S1|≤10),并且仅有"W,S,A,D'这四种字符表示牛牛的行为方式。
输出描述
输出仅有一行,坐标位置x和用空格分开,表示牛牛的最终位置。
样例输入
WAW
样例输出
-1 1
说明
第一步后牛牛面朝上位于(0,1),第二步后牛牛面朝西位于(0,1),第三步后牛牛面朝西位于(-1,1);
参考题解
模拟。
C++:[此代码未进行大量数据的测试,仅供参考]
#include <iostream> #include <string> using namespace std; int main() { string S; cin >> S; int x = 0, y = 0; char direction = 'N'; for (char c : S) { if (c == 'W') { if (direction == 'N') y++; else if (direction == 'E') x++; else if (direction == 'S') y--; else if (direction == 'W') x--; } else if (c == 'A') { if (direction == 'N') direction = 'W'; else if (direction == 'W') direction = 'S'; else if (direction == 'S') direction = 'E'; else if (direction == 'E') direction = 'N'; } else if (c == 'D') { if (direction == 'N') direction = 'E'; else if (direction == 'E') direction = 'S'; else if (direction == 'S') direction = 'W'; else if (direction == 'W') direction = 'N'; } } cout << x << " " << y << endl; return 0; }
Java:[此代码未进行大量数据的测试,仅供参考]
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String S = scanner.nextLine(); int x = 0, y = 0; char direction = 'N'; for (char c : S.toCharArray()) { if (c == 'W') { if (direction == 'N') y++; else if (direction == 'E') x++; else if (direction == 'S') y--; else if (direction == 'W') x--; } else if (c == 'A') { if (direction == 'N') direction = 'W'; else if (direction == 'W') direction = 'S'; else if (direction == 'S') direction = 'E'; else if (direction == 'E') direction = 'N'; } else if (c == 'D') { if (direction == 'N') direction = 'E'; else if (direction == 'E') direction = 'S'; else if (direction == 'S') direction = 'W'; else if (direction == 'W') direction = 'N'; } } System.out.println(x + " " + y); scanner.close(); } }
Python:[此代码未进行大量数据的测试,仅供参考]
S = input() x, y = 0, 0 direction = 'N' for c in S: if c == 'W': if direction == 'N': y += 1 elif direction == 'E': x += 1 elif direction == 'S': y -= 1 elif direction == 'W': x -= 1 elif c == 'A': if direction == 'N': direction = 'W' elif direction == 'W': direction = 'S' elif direction == 'S': direction = 'E' elif direction == 'E': direction = 'N' elif c == 'D': if direction == 'N': direction = 'E' elif direction ==
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2024 BAT笔试合集 文章被收录于专栏
持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。