题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.io.; import java.util.regex.;
public class Main{ public static void main(String args[]) throws Exception{ String inpudWord = ""; BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); inpudWord = buff.readLine().toLowerCase(); String arr[] = inpudWord.split(";"); int result[] = {0,0}; //A10;S20;W10;D30;X;A1A;B10A11;;A10; for(int i=0;i<arr.length;i++){ result = cpt(arr[i].trim(),result[0],result[1]); } System.out.println(result[0]+","+result[1]); } public static int[] cpt(String word,int hResult,int zResult){ //a,b为相反的方向 String regex = "1.*\d$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(word); if (m.matches()) { //匹配正则表达式 if (word.substring(1).length()>2) return new int[] {hResult,zResult}; if (word.charAt(0)=='a' ){ hResult -= Integer.parseInt(word.substring(1)); }//左移 if (word.charAt(0)=='d' ){ hResult += Integer.parseInt(word.substring(1)); }//右移 if (word.charAt(0)=='w' ){ zResult += Integer.parseInt(word.substring(1)); }//上移动 if (word.charAt(0)=='s' ){ zResult -= Integer.parseInt(word.substring(1)); }//下移 return new int[] {hResult,zResult}; } else { return new int[] {hResult,zResult}; } } }
- wasd↩