题解 | HJ_17 #坐标移动#

坐标移动

https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

import java.util.Arrays;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();

        String[] points = input.split(";");

        int[] result = {0, 0};
        for (String point : points) {
            if (isValidPoint(point)) {
                move(point, result);
            }
        }

        System.out.println(result[0] + "," + result[1]);

    }

    private static void move(String point, int[]  result) {
        String direction = point.substring(0, 1);
        String distance = point.substring(1);
        switch (direction) {
            case "A" :
                result[0] -= Integer.parseInt(distance);
                break;
            case "D" :
                result[0] += Integer.parseInt(distance);
                break;
            case "W" :
                result[1] += Integer.parseInt(distance);
                break;
            case "S" :
                result[1] -= Integer.parseInt(distance);
                break;
        }
    }

    private static boolean isValidPoint(String point) {
        if (point.length() >= 2 && point.length() <= 3 &&
                Arrays.asList("A", "D", "W", "S").contains(point.substring(0, 1))) {
            String numStr = point.substring(1);
            return numStr.matches("\\d+");
        }

        return false;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务