题解 | #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String orderStr = in.nextLine();
findStr(orderStr);
}
public static void findStr(String rrt) {
// String rrt = "A10;S20;W10;D30;X;A1A;B10A11;;A10;";
int sums = 0;
int[] pos = {0, 0};
String[] doStr = rrt.split(";");
// String[] dodd = rrt.split("\\s*;\\s*");as the same of top;
for (int i = 0; i < doStr.length; i++) {
String words = doStr[i];
// System.out.println(words);
if (!words.equals("")) {
char x = words.charAt(0);
// System.out.println("X:"+x);
if (x == 'A' || x == 'D' || x == 'S' || x == 'W') { //A 左,D右,W上,S下
for (int k = 1; k < words.length(); k++) {
char data = words.charAt(k);
int intData = data - '0';
if (intData > 9 || intData < 0) {
// isFalse = true;
sums = 0;
break;
}
sums += seekPower(intData, words.length() - 1 - k);
}
switch (x) {
case 'A': {
pos[0] -= sums;
sums = 0;
break;
}
case 'D': {
pos[0] += sums;
sums = 0;
break;
}
case 'W': {
pos[1] += sums;
sums = 0;
break;
}
case 'S': {
pos[1] -= sums;
sums = 0;
break;
}
default:
break;
}
}
}
}
System.out.println(pos[0] + "," + pos[1]);
}
public static long seekPower(int data, int mi) {
// System.out.println("data:"+data+"mi:"+mi);
return (long) Math.pow(10, mi) * data;
}
}

查看17道真题和解析