Java算法---坐标移动

来源:互联网 发布:js树状结构 编辑:程序博客网 时间:2024/04/20 00:25

题目描述:

开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。   输入:合法坐标为A(或者D或者W或者S)+数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;A1A;$%$;YAD;等。   

下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)+ A10 =(-10,0)+ S20 =(-10,-20)+W10 =(-10,-10)+D30 =(20,-10)+ x=无效+A1A=无效+ B10A11=无效+一个空 不影响+A10=(10,-10)结果 (10, -10) 

输入描述:

一行字符串

输出描述:

最终坐标,以,分隔

输入例子:

A10;S20;W10;D30;X;A1A;B10A11;;A10;

输出例子:

10,-10

这个题也比较简单,主要是要加个判断,判断当前的坐标是否合法,然后按照正常思路处理就可以了。

<span style="font-family:SimSun;font-size:18px;"> import java.util.Scanner;/** * Created by Administrator on 2015/12/16. */public class Main1 {    public static void main(String[] args) {        Scanner sc=new Scanner(System.in);        while (sc.hasNext()){            String str=sc.nextLine();            String[] strx=str.split(";");            Point start=new Point();            for(int i=0;i<strx.length;i++){                if(strx[i].length()<=3&&strx[i].length()>1){                    if (strx[i].charAt(0) == 'A' || strx[i].charAt(0) == 'W' || strx[i].charAt(0) == 'S' || strx[i].charAt(0) == 'D') {                        String num=strx[i].substring(1);                        int len=num.length();                        if(len-num.replaceAll("[^0-9]","").length()==0){                            start=Direction(strx[i],start);                        }                    }                }            }           System.out.println(start.x+","+start.y);        }    }    public static Point Direction(String str,Point start){        if(str.charAt(0)=='A'){           start.x=start.x-Integer.parseInt(str.substring(1));        }        if(str.charAt(0)=='W'){            start.y=start.y+Integer.parseInt(str.substring(1));        }        if(str.charAt(0)=='S'){            start.y=start.y-Integer.parseInt(str.substring(1));        }        if(str.charAt(0)=='D'){            start.x=start.x+Integer.parseInt(str.substring(1));        }        return start;    }}class Point{    int x;    int y;}</span>


0 0
原创粉丝点击