इस समस्या में, हमें एक रोबोट दिया गया है जो चारों दिशाओं में चलता है लेकिन केवल एक चाल। दिशाएं हैं ऊपर('U'), नीचे('D'), बाएं('L'), दाएं('R')। और हमें एक स्ट्रिंग दी गई है जिसमें दिशाओं के प्रारंभिक अक्षर हैं। हमारा कार्य रोबोट की अंतिम स्थिति प्रिंट करना है, दिया गया है कि रोबोट की प्रारंभिक स्थिति (0,0) है।
समस्या को समझने के लिए एक उदाहरण लेते हैं
इनपुट - इनपुट: 'LDRRUL'
आउटपुट - (0, 0)
व्याख्या -
L (बाएं) : (0,0) -> (-1,0) D (नीचे) : (-1,0) -> (-1, -1) R (दाएं) : (-1, -1) -> (0, -1) R (दाएं) : (0, -1) -> (1, -1) U(ऊपर) : (1, -1) -> (1, 0) L(बाएं) : (1, 0) -> (0, 0)
इस समस्या को हल करने के लिए, हम x-अक्ष और y-अक्ष दिशा में कुल चालों की गिनती करेंगे। x-निर्देशांक के लिए, दाएं चाल के लिए गिनती बढ़ाएं और बाएं चाल के लिए घटाएं। y-निर्देशांक के लिए, ऊपर चाल के लिए गिनती बढ़ाएं और नीचे चाल के लिए घटाएं।
उदाहरण
हमारे समाधान के कार्यान्वयन को दर्शाने वाला प्रोग्राम
#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 << "रोबोट की अंतिम स्थिति है : (" << xAxis << ", " << yAxis << ")" << endl;
}
int main() {
string move = "URLLDDRRUDUDDRU";
robotMoved(move);
return 0;
}
आउटपुट
रोबोट की अंतिम स्थिति है : (32744, -274873553)