题解 | #坐标移动#
坐标移动
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); String inputNum = in.nextLine(); String[] inputNums = inputNum.split(";"); int x = 0; int y = 0; for (String s : inputNums) { // 判断是否成功 boolean flag = false; // 位移量 int locate_temp = 0; // 存储字符串长度 int sLength_temp = s.length(); // 判断长度是否是 2 或者 3 if (sLength_temp == 2 || sLength_temp == 3) { // 判断首位是否是 ABCD if (s.charAt(0) == 'W' || s.charAt(0) == 'A' || s.charAt(0) == 'S' || s.charAt(0) == 'D') { // 判断第二位是否是 数字 if (s.charAt(1) >= '0' && s.charAt(1) <= '9') { flag = true; // 判断第三位是否是 数字 if (sLength_temp == 3) { if (s.charAt(2) >= '0' && s.charAt(2) <= '9') { flag = true; } else { continue; } } } else { continue; } } else { continue; } } else { continue; } // 坐标更新,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动 if (flag) { if (sLength_temp == 2) { locate_temp = s.charAt(1) - '0'; } else if (sLength_temp == 3) { locate_temp = (int) (s.charAt(1) - '0') * 10 + (int) (s.charAt(2) - '0'); } switch (s.charAt(0)) { case 'A': x -= locate_temp; break; case 'D': x += locate_temp; break; case 'S': y -= locate_temp; break; case 'W': y += locate_temp; break; } } } System.out.println(x + "," + y); } }
直接硬解。