牛客网——华为机试(题17:坐标移动)(Java)
生活随笔
收集整理的這篇文章主要介紹了
牛客网——华为机试(题17:坐标移动)(Java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
開發一個坐標計算工具,?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)
輸入描述:
一行字符串
輸出描述:
最終坐標,以,分隔
示例1:
輸入:
A10;S20;W10;D30;X;A1A;B10A11;;A10;輸出:
10,-10代碼:?
import java.util.Scanner;public class Main {public static void main ( String[] args ) {Scanner in = new Scanner( System.in );while ( in.hasNextLine() ) {String s1 = in.nextLine();String s[] = s1.split(";");int x = 0;int y = 0;for( int i = 0 ; i < s.length ; i++ ) {if ( (s[i].length() == 3 && ( (s[i].charAt(0) == 'A' || s[i].charAt(0) == 'S' || s[i].charAt(0) == 'W' || s[i].charAt(0) == 'D') && ( s[i].charAt(1) >= '0' && s[i].charAt(1) <= '9') && ( s[i].charAt(2) >= '0' && s[i].charAt(2) <= '9' ) )) || ( s[i].length() == 2 && ( (s[i].charAt(0) == 'A' || s[i].charAt(0) == 'S' || s[i].charAt(0) == 'W' || s[i].charAt(0) == 'D') && ( s[i].charAt(1) >= '0' && s[i].charAt(1) <= '9') ) ) ) {if ( s[i].charAt(0) == 'A' ) {x -= Integer.valueOf( s[i].substring(1) );}if ( s[i].charAt(0) == 'D' ) {x += Integer.valueOf( s[i].substring(1) );}if ( s[i].charAt(0) == 'S' ) {y -= Integer.valueOf( s[i].substring(1) );}if ( s[i].charAt(0) == 'W' ) {y += Integer.valueOf( s[i].substring(1) );}}}System.out.println( x +","+ y );}} }轉載于:https://www.cnblogs.com/cg-bestwishes/p/10681161.html
總結
以上是生活随笔為你收集整理的牛客网——华为机试(题17:坐标移动)(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【复习】---【noip2009 普及】
- 下一篇: linux两台服务器之间文件/文件夹拷贝