题解 | #坐标移动#

坐标移动

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

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] strs = br.readLine().trim().split(";");
        Map<Character, Integer> map = new HashMap<>();
        for(int i = 0; i < strs.length; i++){
            String curStr = strs[i];
            if(curStr.length() < 2 || curStr.length() > 3 ){
                continue;
            }
            char dirc = curStr.charAt(0);
            if(isValid(dirc)){
                if(curStr.length() == 2){
                    char sec = curStr.charAt(1);
                    if(sec >= '0' && sec <= '9' ){
                        int secInt = sec - '0';
                        if(map.containsKey(dirc)){
                            map.put(dirc, (map.get(dirc)+secInt));
                        }else{
                            map.put(dirc, secInt);
                        }
                    }else{
                        continue;
                    }
                }else if (curStr.length() == 3){
                    char sec = curStr.charAt(1);
                    int secInt = 0, thiInt = 0;
                    if(sec >= '0' && sec <= '9' ){
                        secInt = sec - '0';
                    }else{
                        continue;
                    }
                    char thi = curStr.charAt(2);
                    if(thi >= '0' && thi <= '9' ){
                        thiInt = thi - '0';
                    }else{
                        continue;
                    }

                    int num = secInt * 10 + thiInt;
                    if(map.containsKey(dirc)){
                        map.put(dirc, (map.get(dirc)+num));
                    }else{
                        map.put(dirc, num);
                    }
                }
            }
        }
        int x = 0, y = 0;
        for(Map.Entry<Character, Integer> entry : map.entrySet()){
            if(entry.getKey() == 'A'){
                x = x - entry.getValue();
            }else if(entry.getKey() == 'D'){
                x = x + entry.getValue();
            }else if(entry.getKey() == 'W'){
                y = y + entry.getValue();
            }else{
                y = y - entry.getValue();
            }
        }
        System.out.print(x+","+y);

    }
    public static boolean isValid(char ch){
        return (ch == 'A' || ch == 'D' || ch == 'W' || ch == 'S');
    }
}
全部评论

相关推荐

沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务