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

जाँच करें कि क्या C++ में दिए गए दिशाओं में जाने के बाद प्रारंभिक स्थिति में वापस आना संभव है

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

  • ई पूर्व के लिए
  • पश्चिम के लिए डब्ल्यू
  • उत्तर के लिए उत्तर
  • दक्षिण के लिए।

इसलिए, यदि इनपुट "ईएनडब्ल्यूडब्ल्यूएस" जैसा है, तो आउटपुट सही होगा, पूर्व की दो इकाइयों को स्थानांतरित करें, फिर उत्तर की ओर, फिर पश्चिम में दो इकाइयों को फिर से दक्षिण की ओर ले जाएं, इसलिए यह प्रारंभिक स्थिति है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • l :=मूव्स ऐरे का आकार
  • यदि l, 0 के समान है, तो −
    • सही लौटें
  • एलएफटी:=0, ऊपर:=0
  • इनिशियलाइज़ i :=0 के लिए, जब i करें
  • यदि चाल [i] 'W' के समान है, तो −
    • (एलएफटी 1 से बढ़ाएं)
  • यदि चाल [i] 'E' के समान है, तो −
    • (एलएफटी 1 से घटाएं)
  • यदि चाल [i] 'N' के समान है, तो −
    • (1 से बढ़ाएँ)
  • यदि चाल [i] 'S' के समान है, तो:
    • (1 से कम करें)
  • यदि lft 0 के समान है और ऊपर 0 के समान है, तो −
    • सही लौटें
  • झूठी वापसी
  • उदाहरण (C++)

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

    #include <bits/stdc++.h>
    using namespace std;
    class Solution {
       public:
       bool solve(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] == 'W') {
                   lft++;
                }
                if (moves[i] == 'E') {
                   lft--;
                }
                if (moves[i] == 'N') {
                   up++;
                }
                if (moves[i] == 'S') {
                   up--;
                }
             }
             if (lft == 0 && up == 0) {
                return true;
             }
             return false;
          }
       };
    }
    main(){
       Solution ob;
       cout << (ob.solve("EENWWS"));
    }

    इनपुट

    "EENWWS"

    आउटपुट

    1

    1. C++ का प्रयोग करते हुए दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या ज्ञात कीजिए

      एक चतुर्भुज यूक्लिडियन समतल ज्यामिति में चार शीर्षों और चार किनारों वाला एक बहुभुज बनाता है। नाम 4-गॉन आदि। चतुर्भुज के अन्य नामों में शामिल हैं और कभी-कभी उन्हें एक वर्ग, प्रदर्शन शैली आदि के रूप में भी जाना जाता है। इस लेख में, हम दिए गए बिंदुओं से संभव चतुर्भुजों की संख्या का पता लगाने के तरीकों

    1. सी ++ में ग्रिड में दी गई दिशा में संभावित चालों की गणना करें

      हम दो चर n और m हैं जो n x m आकार के ग्रिड का प्रतिनिधित्व करते हैं और प्रारंभिक बिंदु x, y से शुरू करते हैं। कदमों/चालों के जोड़े भी दिए गए हैं जिन्हें चाल ((1,1), (2,2)) आदि के रूप में ग्रिड के अंदर ले जाया जा सकता है। चालों की प्रत्येक जोड़ी x,y अक्ष में उठाए गए कदमों की इकाई का प्रतिनिधित्व करत

    1. C++ में दिए गए आकार के आयत के अंदर संभव रंबी की संख्या की गणना करें

      हमें ऊंचाई X चौड़ाई के रूप में आयामों के साथ एक आयत दिया गया है। आयत को एक 2D निर्देशांक प्रणाली पर दर्शाया गया है जिसमें बिंदु (0,0) पर बाएँ-निचले कोने हैं। तो लक्ष्य इस आयत के अंदर संभव रोम्बी की संख्या को गिनना है ताकि ये सभी शर्तें पूरी हों - समचतुर्भुज का क्षेत्रफल 0 से अधिक होता है। समचत