题解 | #坐标移动#

坐标移动

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

import java.util.Scanner;
import java.util.*;
// 把字符串按;分割,每一个都用两个栈把合法的字母与数字压入栈中,再一起出栈处理
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        String[] list = input.split(";");
        int[] location = new int[2];

        for (String s : list) {
            Stack<Character>  letter= new Stack<>();
            Stack<Integer> step= new Stack<>();
            if (!s.isEmpty()){
                int i=0;
                if(s.charAt(i)=='X') continue;
                for (; i < s.length(); i++){
                    char cur = s.charAt(i);
                    if (Character.isDigit(cur)){
                        int num=0;
                        while (i<s.length()&&Character.isDigit(s.charAt(i))){
                            num=num*10+Integer.parseInt(String.valueOf(s.charAt(i)));
                            i++;
                        }
                        step.push(num);
                    }
                    if(cur=='A'||cur=='D'||cur=='W'||cur=='S'){
                        letter.push(s.charAt(i));
//                        System.out.println(letter);
                    }else break;

                }
                if(i<s.length()) continue;
            }
            if(!letter.isEmpty()&&!step.isEmpty()&&step.size()==letter.size()) {
                for (int j = 0; j < letter.size(); j++){
                    int num = step.pop();
                    switch (letter.peek()) {
                        case 'A':
                            location[0] = location[0] - num;
                            break;
                        case 'D':
                            location[0] = location[0] + num;
                            break;
                        case 'S':
                            location[1] = location[1] - num;
                            break;
                        case 'W':
                            location[1] = location[1] + num;
                            break;
                        default:
                    }
                }
                letter.clear();
            }
        }
        System.out.println(location[0]+","+location[1]);
    }
}

全部评论

相关推荐

工科女的日常:真诚建议:别再用这种花哨的模板,可以看看我发的那个零经验找实习发帖子
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务