题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
直接粗暴的if——else 刚开始报错一直找不到问题,输出跟预期差了个符号,结果发现是题目和答案的s、w定义完全相反。。。有点糙了
看到答题区大家用的是HashMap,果然选对容器很重要
public static void main(String [] args){ Scanner in = new Scanner (System.in); String str=in.nextLine(); String [] s=str.split(";"); int x=0,y=0; String tmp="\\d{1,2}"; for(int i=0;i<s.length;i++){ if(s[i].length() > 3 || s[i].length() < 2 ) continue; if(s[i].charAt(0)=='A'){ if(s[i].substring(1).matches(tmp)) x=x-Integer.valueOf(s[i].substring(1)); } else if(s[i].charAt(0)=='S'){ if(s[i].substring(1).matches(tmp)) y=y-Integer.valueOf(s[i].substring(1)); } else if(s[i].charAt(0)=='W'){ if(s[i].substring(1).matches(tmp)) y=y+Integer.valueOf(s[i].substring(1)); } else if(s[i].charAt(0)=='D'){ if(s[i].substring(1).matches(tmp)) x=x+Integer.valueOf(s[i].substring(1)); } } System.out.print(x+","+y); }