题解 | #坐标移动#

坐标移动

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);
    }
}

直接硬解。

全部评论

相关推荐

想润的芹菜人狠话不多:把其中一个老总放中间都会得罪另一个
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务