C++機器人返回原點
假設有一個機器人,其起始位置為 (0, 0)。如果我們有一系列機器人的移動指令,我們需要檢查這個機器人完成所有移動後是否最終停留在 (0, 0) 位置。
移動序列以字串的形式給出,字元 moves[i] 代表其第 i 次移動。符號 R 代表向右移動,L 代表向左移動,U 代表向上移動,D 代表向下移動。如果機器人完成所有移動後返回原點,則返回 true;否則返回 false。
例如,如果輸入為 "RRULLD",則輸出為 true,向右移動兩格,然後向上移動一格,然後向左移動兩格,最後向下移動一格,最終回到起始位置。
為了解決這個問題,我們將遵循以下步驟:
l := moves 陣列的大小
如果 l 等於 0,則:
返回 true
lft := 0, up := 0
for i := 0, i < l, i++ do:
如果 moves[i] 等於 'L',則:
lft++
如果 moves[i] 等於 'R',則:
lft--
如果 moves[i] 等於 'U',則:
up++
如果 moves[i] 等於 'D',則:
up--
如果 lft 等於 0 且 up 等於 0,則:
返回 true
返回 true
示例
讓我們看下面的實現來更好地理解:
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool judgeCircle(string moves) {
int l = moves.length();
if (l == 0) {
return true;
}
int lft = 0, up = 0;
for (int i = 0; i < l; i++) {
if (moves[i] == 'L') {
lft++;
}
if (moves[i] == 'R') {
lft--;
}
if (moves[i] == 'U') {
up++;
}
if (moves[i] == 'D') {
up--;
}
}
if (lft == 0 && up == 0) {
return true;
}
return false;
}
};
main(){
Solution ob;
cout << (ob.judgeCircle("RRULLD"));
}輸入
"RRULLD"
輸出
1
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP