题解 | #坐标移动#

坐标移动

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

import java.util.Scanner;

public class Main { public static void main(String[] args) { //输入 Scanner sc= new Scanner(System.in); char input[]=sc.nextLine().toCharArray(); int x=0,y=0;//坐标

    //指针i依次扫描char,识别到关键字wsad时,指针j向前查看是否为合法数字,是,执行坐标变换,否,i继续向前扫描
    for (int i = 0; i < input.length;i++) {
        int j=0;//i,j是两个指针
        int result,ten,one;
        if (input[i]=='W'){
            j=i+1;
            result=0;
            if (Character.isDigit(input[j])){//第一位
                ten=Character.getNumericValue(input[j]);
                j++;
                if (Character.isDigit(input[j])){//第二位
                    one=Character.getNumericValue(input[j]);
                    j++;
                    if (input[j]==';') {//第三位
                        result=10*ten+one;
                    }
                    else continue;
                }
                else if (input[j]==';')result=ten;
                else continue;
            }
            y+=result;
        }
        if (input[i]=='S'){
            j=i+1;
            result=0;
            if (Character.isDigit(input[j])){//第一位
                ten=Character.getNumericValue(input[j]);
                j++;
                if (Character.isDigit(input[j])){//第二位
                    one=Character.getNumericValue(input[j]);
                    j++;
                    if (input[j]==';') {//第三位
                        result=10*ten+one;
                    }
                    else continue;
                }
                else if (input[j]==';')result=ten;
                else continue;
            }
            y-=result;
        }
        if (input[i]=='A'){
            j=i+1;
            result=0;
            if (Character.isDigit(input[j])){//第一位
                ten=Character.getNumericValue(input[j]);
                j++;
                if (Character.isDigit(input[j])){//第二位
                    one=Character.getNumericValue(input[j]);
                    j++;
                    if (input[j]==';') {//第三位
                        result=10*ten+one;
                    }
                    else continue;
                }
                else if (input[j]==';')result=ten;
                else continue;
            }
            x-=result;
        }
        if (input[i]=='D'){
            j=i+1;
            result=0;
            if (Character.isDigit(input[j])){//第一位
                ten=Character.getNumericValue(input[j]);
                j++;
                if (Character.isDigit(input[j])){//第二位
                    one=Character.getNumericValue(input[j]);
                    j++;
                    if (input[j]==';') {//第三位
                        result=10*ten+one;
                    }
                    else continue;
                }
                else if (input[j]==';')result=ten;
                else continue;
            }
            x+=result;
        }
        while(input[i]!=';'){
            i++;
        }
    }

    //输出
    System.out.println(x+","+y);
}

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务