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

C++ में दोहराए गए स्ट्रिंग में वर्णों के लिए क्वेरी


इस समस्या में, हमें एक स्ट्रिंग str और Q क्वेरी दी गई हैं जिनमें दो मान a और b होते हैं। हमारा कार्य C++ में दोहराए गए स्ट्रिंग में वर्णों के लिए क्वेरी को हल करने के लिए एक प्रोग्राम बनाना है।

समस्या विवरण

प्रत्येक क्वेरी को हल करने के लिए, हमें यह जांचना होगा कि इंडेक्स a और b पर वर्ण समान हैं या नहीं और तदनुसार मान लौटाना होगा।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट: str = “tutorialspoint”

Q = 2

क्वेरी = {{0, 2}, {4, 7}}

आउटपुट: दोहराया गया

नहीं दोहराया गया

व्याख्या

क्वेरी 1 के लिए, इंडेक्स 0 पर वर्ण t है, और इंडेक्स 2 पर वर्ण t है। दोनों समान वर्ण हैं।

क्वेरी 1 के लिए, इंडेक्स 4 पर वर्ण r है, और इंडेक्स 7 पर वर्ण l है। दोनों समान वर्ण नहीं हैं।

समाधान दृष्टिकोण

समस्या को हल करने के लिए, हम बस इंडेक्स a और b पर तत्वों की समतुल्यता की जांच करेंगे। यदि कोई इंडेक्स स्ट्रिंग की लंबाई से अधिक है, तो हम (index%len) का मान ढूंढेंगे, ताकि वर्ण का इंडेक्स मिल सके। और तुलना के लिए नए इंडेक्स का उपयोग करेंगे।

उदाहरण

#include <iostream> #include <string> using namespace std; bool isrepeated(string str, int len, int a, int b){    if(a > len)       a %= len;    if(b > len)       b %= len;    if(str[a] == str[b])       return true;    else      return false; } int main(){    string str = "tutorialspoint";    int len = str.length();    int Q = 3;    int query[Q][2] = {{0, 2}, {3, 32}, {5, 18}};    for(int i = 0; i < Q; i++){       if(isrepeated(str, len, query[i][0], query[i][1]))          cout<<"दोनों इंडेक्स मानों में वर्ण दोहराया गया है"<<endl;       else          cout<<"दोनों इंडेक्स मानों में वर्ण नहीं दोहराया गया है"<<endl;    }    return 0; }

आउटपुट

दोनों इंडेक्स मानों में वर्ण दोहराया गया है वर्ण दोनों इंडेक्स मानों में नहीं दोहराया गया है वर्ण दोनों इंडेक्स मानों में नहीं दोहराया गया है

  1. C++ में ट्री में सबट्री के DFS के लिए क्वेरीज़ C++ में ट्री में सबट्री के DFS के लिए क्वेरीज़

    इस समस्या में हमें एक बाइनरी ट्री दिया गया है और हमें एक विशेष नोड से DFS करना है जिसमें हम दिए गए नोड को रूट मानते हैं और उससे DFS करते हैं।उपरोक्त ट्री में मान लें हमें नोड F से DFS करना हैइस ट्यूटोरियल में हम कुछ अपरंपरागत तरीके लागू करने जा रहे हैं ताकि हमारी समय जटिलता काफी कम हो जाए और इस प्रक

  1. - C++ में string at() फंक्शन

    इस खंड में, हम देखेंगे कि C++ में at() फंक्शन क्या है। at() फंक्शन का उपयोग दिए गए स्थान पर वर्ण को एक्सेस करने के लिए किया जाता है। इस प्रोग्राम में, हम at() फंक्शन का उपयोग करके प्रत्येक वर्ण के माध्यम से पुनरावृति करेंगे और उन्हें अलग-अलग लाइनों में प्रिंट करेंगे। उदाहरण कोड #include<iostrea

  1. - C++ में स्ट्रिंग के प्रत्येक कैरेक्टर पर लूप करना

    इस प्रोग्राम में हम देखेंगे कि C++ में स्ट्रिंग के प्रत्येक कैरेक्टर के माध्यम से कैसे इटरेट करें। प्रत्येक कैरेक्टर पर लूप करने के लिए, हम 0 से (स्ट्रिंग लंबाई - 1) तक शुरू होने वाले लूप का उपयोग कर सकते हैं। कैरेक्टर तक पहुंचने के लिए हम या तो सबस्क्रिप्ट ऑपरेटर [] या स्ट्रिंग ऑब्जेक्ट के at() फं