题解 | 华为题库-坐标移动-模拟

坐标移动

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 的区别
        int pos[]=new int[2];
        String line = in.nextLine();
        String strs[]=line.split(";");
        for(String str:strs){
            //合法性
            if(str.length()<2){
                continue;
            }
            char s=str.charAt(0);
            int num=0;
            boolean flag = false;
            for(int i=1;i<str.length();i++){
                char c =str.charAt(i);
                if(c<='9'&&c>='0'){
                    num*=10;
                    num+=(int)(c-'0');
                }else{
                    flag = true;
                    break;
                }
            }
            if(flag) {
                continue;
            }
            // 移动
            switch(s){
                case 'A': //A表示向左移动
                    pos[0]-=num;
                    break;
                case 'D': //D表示向右移动
                    pos[0]+=num;
                    break;
                case 'W': //W表示向上移动
                    pos[1]+=num;
                    break;
                case 'S':// S表示向下移动
                    pos[1]-=num;
                    break;
                default:            
            }
            //  System.out.println(s+","+pos[0]+","+pos[1]);
        }
         System.out.println(+pos[0]+","+pos[1]);
        
    }
}
全部评论

相关推荐

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