题解 | 华为题库-坐标移动-模拟
坐标移动
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]);
}
}
智元机器人成长空间 174人发布
查看13道真题和解析