मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें केवल एल और आर है, यह क्रमशः बाएं रोटेशन और दाएं रोटेशन को दर्शाता है, हमें धुरी की अंतिम दिशा का पता लगाना है। यहां दिशाएं उत्तर (एन), पूर्व (ई), दक्षिण (एस) और पश्चिम (डब्ल्यू) हैं। हम मान रहे हैं कि धुरी एक कंपास में उत्तर (एन) की ओर इशारा करती है।
इसलिए, यदि इनपुट "आरआरएलआरएलएलआर" जैसा है, तो आउटपुट ई होगा, क्योंकि प्रारंभिक दिशा एन है, आरआर एस को इंगित करेगा, फिर एलआर उसी एन को फिर से इंगित करेगा, फिर एलएल पिछली स्थिति एन को इंगित करेगा, फिर R, E को इंगित करेगा। इसलिए E अंतिम है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
गिनती :=0
-
दिशा :=एक खाली स्ट्रिंग
-
इनिशियलाइज़ i :=0 के लिए, जब i - s की लंबाई, अपडेट (i से 1 की वृद्धि), करें -
-
यदि s[i] 'L' के समान है, तो -
-
(गिनती 1 से घटाएं)
-
-
अन्यथा
-
(1 से गिनती बढ़ाएं)
-
-
-
अगर गिनती> 0, तो -
-
यदि काउंट मॉड 4 0 के समान है, तो -
-
दिशा:="एन"
-
-
अन्यथा जब काउंट मॉड 4 1 के समान हो, तो -
-
दिशा:="ई"
-
-
अन्यथा जब काउंट मॉड 4 2 के समान हो, तो -
-
दिशा:="एस"
-
-
अन्यथा जब काउंट मॉड 4, 3 के समान हो, तब -
-
दिशा:="डब्ल्यू"
-
-
-
अगर गिनती <0, तो -
-
यदि काउंट मॉड 4 0 के समान है, तो -
-
दिशा:="एन"
-
-
अन्यथा जब काउंट मॉड 4 -1 के समान हो, तो -
-
दिशा:="डब्ल्यू"
-
-
अन्यथा जब काउंट मॉड 4 -2 के समान हो, तो -
-
दिशा:="एस"
-
-
इसी तरह जब काउंट मॉड 4 -3 के समान होता है, तो -
-
दिशा:="ई"
-
-
-
वापसी की दिशा
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include<bits/stdc++.h> using namespace std; string get_dir(string s) { int count = 0; string direction = ""; for (int i = 0; i < s.length(); i++){ if (s[0] == '\n') return NULL; if (s[i] == 'L') count--; else count++; } if (count > 0){ if (count % 4 == 0) direction = "N"; else if (count % 4 == 1) direction = "E"; else if (count % 4 == 2) direction = "S"; else if (count % 4 == 3) direction = "W"; } if (count < 0){ if (count % 4 == 0) direction = "N"; else if (count % 4 == -1) direction = "W"; else if (count % 4 == -2) direction = "S"; else if (count % 4 == -3) direction = "E"; } return direction; } int main() { string s = "RRLRLLR"; cout << (get_dir(s)); }
इनपुट
"RRLRLLR"
आउटपुट
E