题解 | #坐标移动#

坐标移动

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

//JAVA 用正则
//Map.getOrDefault()这个函数要活用起来。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String inStr = sc.nextLine();
        int x = 0 , y = 0;
        String[] codiArr = inStr.split(";");
        //正则匹配 []里面匹配一个,java里面\\d是\d的转义,代表数字0-9 
        String regex = "[A|S|D|W]\\d{1}\\d?";
        Map<Character,Integer> outMap = new HashMap<>();
        //获取有效的坐标数据
        for(int i =0;i<codiArr.length;i++){
            if(codiArr[i].matches(regex)){
                //outMap.getOrDefault(codiArr[i],1) 
                //方法为如果map中已经有相应的key,就返回这个key对应的value,否则就返回后面的默认值,这里是设置的int类型的计算,所以这里根据需求设置默认值为0
                outMap.put(codiArr[i].charAt(0),outMap.getOrDefault(codiArr[i].charAt(0),0) + Integer.parseInt(codiArr[i].substring(1,codiArr[i].length())));
            }
        }
            x = x - outMap.get('A') + outMap.get('D');
            y = y - outMap.get('S') + outMap.get('W');
            System.out.println(x+","+y);
  }
}
全部评论

相关推荐

smile丶snow:感觉可以加一些ai相关的内容吧。现在面试很少能逃掉这些问题。羡慕里面感觉缺少一个项目背景。比如第二个项目后台管理系统…你为什么要做这个后台管理系统呢?是为了解决什么问题。比如你管理一个商品列表的增加减少。需要一个背景吧。哦或者说你第一个电子书那个是c端的,你肯定需要一个管理系统吧,那就是第二个后台管理系统,但这两个难道不应该是一个项目吗?可以稍微包装一下,最起码让人看着不是玩具项目。个人观点。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务