lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. 题目

读题

HJ17 坐标移动 

 

考查点

 

2. 解法

思路

 

代码逻辑

 

具体实现

 

public class HJ017 {

public static List<String> directs = Arrays.asList("A", "D", "W", "S");

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(move(sc.nextLine()));
}

public static String move(String actions) {
int x = 0, y = 0;
for (String action : actions.split(";")) {
String[] cur = validAndSplit(action);
if (cur == null) {
continue;
}
String direct = cur[0];
int step = Integer.valueOf(cur[1]);

if ("A".equals(direct)) {
x = x - step;
} else if ("D".equals(direct)) {
x = x + step;
} else if ("W".equals(direct)) {
y = y +step;
} else if ("S".equals(direct)) {
y = y -step;
}
}
return x + "," + y;

}


public static String[] validAndSplit(String action) {
if (action == null || action.isEmpty()) {
return null;
}

String c = action.charAt(0) + "";
if (!directs.contains(c)) {
return null;
}

for (int i = 1; i < action.length(); i++) {
if (!Character.isDigit(action.charAt(i))) {
return null;
}
}

return new String[]{c + "", action.substring(1)};
}

}

3. 总结

posted on 2023-07-12 21:28  白露~  阅读(39)  评论(0编辑  收藏  举报