मान लीजिए कि हमारे पास एक स्ट्रिंग के रूप में कमांड का एक सेट है, स्ट्रिंग में चार दिशाओं के लिए चार अलग-अलग अक्षर होंगे। ऊपर के लिए यू, नीचे के लिए डी, बाएं के लिए एल और दाएं के लिए आर। हमारे पास प्रारंभिक सेल स्थिति (x, y) भी है। दिए गए आदेशों का पालन करने के बाद मैट्रिक्स में ऑब्जेक्ट की अंतिम सेल स्थिति का पता लगाएं। हम मान लेंगे कि अंतिम सेल स्थिति मैट्रिक्स में मौजूद है। मान लीजिए कि कमांड स्ट्रिंग "डीडीएलआरयूएलएल" की तरह है, प्रारंभिक स्थिति (3, 4) है। अंतिम स्थिति (1, 5) है।
दृष्टिकोण सरल है, ऊपर, नीचे, बाएँ और दाएँ आंदोलनों की संख्या गिनें, फिर सूत्र का उपयोग करके अंतिम स्थिति (x', y') ज्ञात करें -
(x’, y’) = (x + count_right – count_left,y + (count_down – count_up))
उदाहरण
#include<iostream> using namespace std; void getFinalPoint(string command, int x, int y) { int n = command.length(); int count_up, count_down, count_left, count_right; int x_final, y_final; count_up = count_down = count_left = count_right = 0; for (int i = 0; i < n; i++) { if (command[i] == 'U') count_up++; else if (command[i] == 'D') count_down++; else if (command[i] == 'L') count_left++; else if (command[i] == 'R') count_right++; } x_final = x + (count_right - count_left); y_final = y + (count_down - count_up); cout << "Final Position: " << "(" << x_final << ", " << y_final << ")"; } int main() { string command = "DDLRULL"; int x = 3, y = 4; getFinalPoint(command, x, y); }
आउटपुट
Final Position: (1, 5)