इस समस्या में, हमें एक ऐसा रोबोट दिया जाता है जो चारों दिशाओं में चलता है लेकिन केवल एक ही चलता है। दिशाएँ ऊपर ('U'), नीचे ('D'), बाएँ ('L'), दाएँ ('R') हैं। और हमें एक स्ट्रिंग दी जाती है जिसमें संख्या की दिशाओं के आद्याक्षर होते हैं। हमारा काम रोबोट की अंतिम स्थिति को प्रिंट करना है, यह देखते हुए कि रोबोट की प्रारंभिक स्थिति (0,0) है।
आइए समस्या को समझने के लिए एक उदाहरण लेते हैं
इनपुट - इनपुट:'एलडीआरआरयूएल'
आउटपुट - (0, 0)
स्पष्टीकरण -
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-निर्देशांक के लिए, दाएँ चाल के लिए गिनती बढ़ाएँ और बाएँ चाल के लिए गिनती घटाएँ। y-निर्देशांक के लिए, ऊपर की ओर जाने की संख्या और बाईं ओर की चाल के लिए नीचे की संख्या में वृद्धि करें।
उदाहरण
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम
#include <iostream> #include <string.h> using namespace std; void robotMoved(string move) { int xAxis, yAxis; 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)