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

सी ++ कोड मेंढक द्वारा घर पहुंचने के लिए न्यूनतम कूद खोजने के लिए

मान लीजिए कि हमारे पास n बिट्स के साथ एक बाइनरी स्ट्रिंग S है और दूसरा नंबर d है। एक संख्या रेखा पर, एक मेंढक बिंदु n पर पहुंचना चाहता है, जो बिंदु 1 से शुरू होता है। मेंढक d से अधिक दूरी पर दाईं ओर कूद सकता है। 1 से n तक प्रत्येक बिंदु के लिए यदि कोई लिली का फूल है तो इसे 1 के रूप में चिह्नित किया जाता है, और यदि नहीं तो 0 के रूप में चिह्नित किया जाता है। मेंढक केवल लिली के साथ बिंदुओं में कूद सकता है। हमें उन छलांगों की न्यूनतम संख्या ज्ञात करनी है जो मेंढक को n तक पहुँचने के लिए चाहिए। यदि संभव न हो, तो -1 लौटें।

तो, अगर इनपुट एस ="10010101" की तरह है; d =4, तो आउटपुट 2 होगा, क्योंकि स्थिति 1 से यह 4 पर कूदता है, फिर इंडेक्स 8(n) पर।

कदम

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

n := size of s
x := 0
y := 0
while (x < n - 1 and y <= n), do:
   if s[x] is same as '1', then:
      x := x + d
      increase y by 1
   Otherwise
      (decrease x by 1)
if y >= n, then:
   return -1
Otherwise
   return y

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
int solve(string s, int d){
   int n = s.size();
   int x = 0, y = 0;
   while (x < n - 1 && y <= n){
      if (s[x] == '1')
         x += d, ++y;
      else
         --x;
   }
   if (y >= n)
      return -1;
   else
      return y;
}
int main(){
   string S = "10010101";
   int d = 4;
   cout << solve(S, d) << endl;
}

इनपुट

"10010101", 4

आउटपुट

2

  1. C++ में मैट्रिक्स के अंत तक पहुंचने के लिए आवश्यक न्यूनतम कदम खोजें

    मान लीजिए कि हमारे पास सकारात्मक पूर्णांक के साथ एक 2D मैट्रिक्स है। हमें मैट्रिक्स के अंत तक जाने के लिए आवश्यक न्यूनतम कदम खोजने होंगे (सबसे नीचे की सेल), यदि हम सेल (i, j) पर हैं, तो हम सेल (i, j+mat[i, j) पर जा सकते हैं ]) या (i+mat[i, j], j), हम सीमा पार नहीं कर सकते। तो अगर मैट्रिक्स की तरह है

  1. C++ में एक अनंत रेखा पर लक्ष्य तक पहुँचने के लिए न्यूनतम चालें खोजें

    मान लीजिए हमारे पास अनंत संख्या रेखा में एक संख्या की स्थिति है। (-इन्फ से +इन्फ)। 0 से शुरू करके हमें बताए अनुसार आगे बढ़ते हुए लक्ष्य तक पहुंचना है। इस चाल में, हम या तो बाएँ या दाएँ कदम जा सकते हैं। हमें आवश्यक चालों की न्यूनतम संख्या ज्ञात करनी है। मान लीजिए लक्ष्य 2 है, तो न्यूनतम चरण 3 होंगे।

  1. पायथन में घर पहुंचने के लिए न्यूनतम छलांग लगाने का कार्यक्रम

    मान लीजिए कि निषिद्ध नामक एक सरणी है, जहां निषिद्ध [i] इंगित करता है कि बग निषिद्ध स्थिति पर नहीं जा सकता है [i], और हमारे पास तीन मान ए, बी और एक्स भी हैं। एक बग का घर संख्या रेखा पर स्थिति x पर है। यह शुरुआत में 0 की स्थिति में है। यह नियमों का पालन करके कूद सकता है - बग बिल्कुल सही स्थिति में