ในปัญหานี้ เราได้รับหุ่นยนต์ที่เคลื่อนที่ในทั้งสี่ทิศทางแต่มาแค่หนึ่งทิศทาง ทิศทางคือ up('U'), down('D'), left('L'), right('R') และเราได้รับสตริงที่มีตัวอักษรแรกของทิศทางของตัวเลข งานของเราคือพิมพ์ตำแหน่งสุดท้ายของหุ่นยนต์ กำหนดตำแหน่งเริ่มต้นของหุ่นยนต์คือ (0,0)
มาดูตัวอย่างเพื่อเข้าใจปัญหา:
Input - input: 'LDRRUL'
Output - (0, 0)
Explanation -
L (left) : (0,0) -> (-1,0) D (down) : (-1,0) -> (-1, -1) R (right) : (-1, -1) -> (0, -1) R (right) : (0, -1) -> (1, -1) U(up) : (1, -1) -> (1, 0) L(left) : (1, 0) -> (0, 0)
เพื่อแก้ปัญหานี้ เราจะนับจำนวนการเคลื่อนที่ทั้งหมดในแกน x และแกน y สำหรับ x-coordinate เพิ่มจำนวนสำหรับการเคลื่อนที่ขวา และลดจำนวนสำหรับการเคลื่อนที่ซ้าย สำหรับ y-coordinate เพิ่มจำนวนสำหรับการเคลื่อนที่ขึ้น และลดจำนวนสำหรับการเคลื่อนที่ลง
ตัวอย่าง
โปรแกรมแสดงการนำโซลูชันของเราไปใช้งาน:
#include <iostream>
#include <string.h>
using namespace std;
void robotMoved(string move) {
int xAxis = 0, yAxis = 0;
int l = move.size();
for (int i = 0; i < l; i++) {
if (move[i] == 'U')
yAxis++;
else if (move[i] == 'D')
yAxis--;
else if (move[i] == 'L')
xAxis--;
else if (move[i] == 'R')
xAxis++;
}
cout << "Final Position of the robot is : (" << xAxis << ", " << yAxis << ")" << endl;
}
int main() {
string move = "URLLDDRRUDUDDRU";
robotMoved(move);
return 0;
}
ผลลัพธ์
Final Position of the robot is : (32744, -274873553)