題目如下,一道簡單的模擬
在無限的平面上,機器人最初位于 (0, 0) 處,面朝北方。機器人可以接受下列三條指令之一:"G":直走 1 個單位
"L":左轉 90 度
"R":右轉 90 度
機器人按順序執行指令 instructions,并一直重復它們。只有在平面中存在環使得機器人永遠無法離開時,返回 true。否則,返回 false。
題解
可以通過觀察發現,機器人最多進行4次輸入的字符串對應的操作就可以到達遠點,我選擇循環四次,直接看結果是不是原點。代碼如下
class Solution {public boolean isRobotBounded(String instructions) {int x=0;int y = 0;int t = 4;int state = 1;while (t>0) {for (int i = 0; i < instructions.length(); i++) {if (instructions.charAt(i) == 'L') {state--;}if (instructions.charAt(i) == 'R') {state++;}if (state == 0) state = 4;if (state == 5) state = 1;if (instructions.charAt(i) == 'G') {switch (state) {case 1:y++;break;case 2:x++;break;case 3:y--;break;case 4:x--;break;}}}t--;}if(x==0&&y==0){return true;}else {return false;}}
}