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

C++ कोड: जांचें कि ग्रासहॉपर लक्ष्य तक पहुंच सकता है या नहीं


मान लीजिए हमारे पास आकार n का एक स्ट्रिंग S और एक अन्य संख्या k है। स्ट्रिंग में चार प्रकार के वर्ण हैं। मान लीजिए कुछ सेल हैं, एक ग्रासहॉपर लक्ष्य तक पहुंचने के लिए कूदना चाहता है। वर्ण '.' का अर्थ है कि संबंधित सेल खाली है, वर्ण '#' का अर्थ है कि संबंधित सेल में बाधा है और ग्रासहॉपर वहां नहीं कूद सकता। 'G' का अर्थ है कि ग्रासहॉपर इस स्थिति से शुरू होता है और, 'T' का अर्थ है कि लक्ष्य सेल। ग्रासहॉपर अपनी वर्तमान स्थिति से ठीक k सेल दूर कूदने में सक्षम है। हमें जांचना है कि क्या ग्रासहॉपर लक्ष्य तक कूद सकता है या नहीं।

उदाहरण के लिए, यदि इनपुट S = "#G#T#"; k = 2 है, तो आउटपुट True होगा, क्योंकि G से T 2 सेल दूर है और k 2 है इसलिए ग्रासहॉपर एक ही छलांग में वहां पहुंच सकता है।

चरण

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

n := size of S x := position of 'G' in S y := position of 'T' in S if x > y, then:     swap x and y for initialize i := x, when i < y, update i := i + k, do:     if S[i] is same as '#', then:         Come out from the loop if i is same as y, then:     return true Otherwise     return false

उदाहरण

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

#include  using namespace std; bool solve(string S, int k) {     int n = S.size();     int i;     int x = S.find('G');     int y = S.find('T');     if (x > y)         swap(x, y);     for (i = x; i < y; i += k)     {         if (S[i] == '#')             break;     }     if (i == y)         return true;     else         return false; } int main() {     string S = "#G#T#";     int k = 2;     cout << solve(S, k) << endl; }

इनपुट

"#G#T#", 2

आउटपुट

1

  1. - C++ में जांचें कि संख्या कृष्णमूर्ति संख्या है या नहीं

    यहां हम देखेंगे कि संख्या कृष्णमूर्ति संख्या है या नहीं, इसकी जांच कैसे करें। एक संख्या कृष्णमूर्ति संख्या है, यदि उसके प्रत्येक अंक के फैक्टोरियल का योग संख्या के समान है। उदाहरण के लिए, यदि संख्या 145 है, तो योग = 1! + 4! + 5! = 1 + 24 + 120 = 145। तो यह एक कृष्णमूर्ति संख्या है।तर्क सरल है, हमें

  1. - Python में कूदकर स्थिति n तक पहुंच सकते हैं या नहीं जांचने का प्रोग्राम

    मान लीजिए 1 से n तक एक संख्या रेखा है। पहले हम स्थिति 0 पर हैं, स्थिति 1 पर जाने के लिए एक कदम कूदें, फिर स्थिति 3 तक पहुंचने के लिए दो स्थान कूदें, फिर स्थिति 6 तक पहुंचने के लिए तीन स्थान कूदें और इसी तरह। हमें जांचना है कि क्या इसे बनाए रखते हुए, हम स्थिति n तक पहुंच सकते हैं या नहीं।तो, यदि इनपु

  1. पायथन में जांचें कि रोबोट लक्ष्य स्थिति तक पहुंच सकता है या नहीं पायथन में जांचें कि रोबोट लक्ष्य स्थिति तक पहुंच सकता है या नहीं

    मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में स्थिति (0, 0) (कार्टेशियन प्लेन) पर बैठा है। यदि हमारे पास उसकी चालों की सूची है जो वह चल सकता है, जिसमें N(उत्तर), S(दक्षिण), W(पश्चिम), और E(पूर्व) हैं। हमें जांचना है कि क्या वह गंतव्य निर्देशांक (x, y) पर पहुंच सकता है। उदाहरण के लिए, यदि इनपुट mov