Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตำแหน่งหุ่นยนต์หลังการเคลื่อนที่ที่กำหนดใน C++

ในปัญหานี้ เราได้รับหุ่นยนต์ที่เคลื่อนที่ในทั้งสี่ทิศทางแต่มาแค่หนึ่งทิศทาง ทิศทางคือ 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)