京东笔试 京东笔试题 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多种语言版本,持续更新中。
顺丰集团工作强度 369人发布