Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में रोबोट की मूल स्थान पर वापसी


मान लीजिए एक रोबोट है और इसकी शुरुआती स्थिति (0, 0) है। यदि हमारे पास इसकी गतिविधियों का क्रम है, तो हमें जांचना होगा कि क्या यह रोबोट अपनी चालें पूरी करने के बाद (0, 0) पर पहुंचता है।

चाल अनुक्रम एक स्ट्रिंग के रूप में दिया जाता है, और वर्ण moves[i] इसकी iवीं चाल को दर्शाता है। प्रतीक हैं: R दाएं के लिए, L बाएं के लिए, U ऊपर के लिए, और D नीचे के लिए। यदि रोबोट अपनी सभी चालें पूरी करने के बाद मूल स्थान पर लौटता है, तो true वापस करें। अन्यथा, false वापस करें।

इसलिए, यदि इनपुट "RRULLD" जैसा है, तो आउटपुट true होगा, दाएं दो यूनिट, फिर ऊपर जाएं, फिर बाएं दो यूनिट फिर फिर नीचे, तो यह शुरुआती स्थिति है।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • l := moves सरणी का आकार
  • यदि l == 0, तो:
    • true वापस करें
  • lft := 0, up := 0
  • i := 0 से l-1 तक लूप चलाएं:
    • यदि moves[i] == 'L', तो:
      • lft को 1 से बढ़ाएं
    • यदि moves[i] == 'R', तो:
      • lft को 1 से घटाएं
    • यदि moves[i] == 'U', तो:
      • up को 1 से बढ़ाएं
    • यदि moves[i] == 'D', तो:
      • up को 1 से घटाएं
  • यदि lft == 0 और up == 0, तो:
    • true वापस करें
  • false वापस करें

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include <bits/stdc++.h> 
using namespace std; 
class Solution { 
public: 
    bool judgeCircle(string moves) { 
        int l = moves.length(); 
        if (l == 0) { 
            return true; 
        } 
        int lft = 0, up = 0; 
        for (int i = 0; i < l; i++) { 
            if (moves[i] == 'L') { 
                lft++; 
            } 
            if (moves[i] == 'R') { 
                lft--; 
            } 
            if (moves[i] == 'U') { 
                up++; 
            } 
            if (moves[i] == 'D') { 
                up--; 
            } 
        } 
        if (lft == 0 && up == 0) { 
            return true; 
        } 
        return false; 
    } 
}; 
int main(){ 
    Solution ob; 
    cout << (ob.judgeCircle("RRULLD")); 
}

इनपुट

"RRULLD"

आउटपुट

1
  1. - C++ में N-क्वीन समस्या का समाधान

    यह समस्या शतरंज बोर्ड पर N क्वीन्स की एक व्यवस्था खोजने की है, जैसे कि कोई क्वीन बोर्ड पर किसी अन्य क्वीन पर हमला न कर सके। शतरंज की क्वीन्स किसी भी दिशा में हमला कर सकती हैं - क्षैतिज, लंबवत और विकर्ण तरीके से। N क्वीन्स की स्थितियों को दर्शाने के लिए एक बाइनरी मैट्रिक्स का उपयोग किया जाता है, ज

  1. - C++ में void फ़ंक्शन्स से रिटर्न

    void फ़ंक्शन्स को void कहा जाता है क्योंकि वे कुछ भी वापस नहीं करते हैं। एक void फ़ंक्शन कुछ भी वापस नहीं कर सकता यह कथन हमेशा सच नहीं है। एक void फ़ंक्शन से, हम कोई मान वापस नहीं कर सकते, लेकिन हम मान के अलावा कुछ वापस कर सकते हैं। उनमें से कुछ नीचे दिए गए हैं। एक void फ़ंक्शन रिटर्न कर सकता है एक

  1. - C++ में "ऑब्जेक्ट कैसे लौटाएं"?

    एक ऑब्जेक्ट क्लास का एक इंस्टेंस है। मेमोरी केवल तब आवंटित होती है जब एक ऑब्जेक्ट बनाया जाता है न कि जब क्लास परिभाषित की जाती है। एक ऑब्जेक्ट को फंक्शन द्वारा return कीवर्ड का उपयोग करके लौटाया जा सकता है। इसे प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है − उदाहरण #include <iostream> u