इस समस्या में, हमें एक स्ट्रिंग str और Q प्रश्न दिए गए हैं जिनमें दो मान a और b शामिल हैं। हमारा काम C++ में दोहराए गए स्ट्रिंग में वर्णों के लिए क्वेरीज़ को हल करने के लिए एक प्रोग्राम बनाना है।
समस्या का विवरण
प्रत्येक प्रश्न को हल करने के लिए, हमें यह जांचना होगा कि क्या अनुक्रमणिका a और b के वर्ण समान हैं और तदनुसार मान लौटाएं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट :str ="ट्यूटोरियल पॉइंट"
क्यू =2
क्वेरी ={{0, 2}, {4, 7}}
आउटपुट :दोहराया
दोहराया नहीं गया
स्पष्टीकरण
प्रश्न 1 के लिए , अनुक्रमणिका 0 पर वर्ण t है, और अनुक्रमणिका 2 का वर्ण t है। दोनों एक ही वर्ण हैं।
प्रश्न 1 के लिए अनुक्रमणिका 4 पर वर्ण r है, और अनुक्रमणिका 7 पर वर्ण l है। दोनों एक ही वर्ण नहीं हैं।
समाधान दृष्टिकोण
समस्या को हल करने के लिए, हम केवल इंडेक्स ए और बी पर तत्वों की समानता की जांच करेंगे। यदि कोई अनुक्रमणिका स्ट्रिंग की लंबाई से अधिक है, तो चरित्र की अनुक्रमणिका प्राप्त करने के लिए (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<<"Character is repeated in both the index values"<<endl; else cout<<"Character is not repeated in both the index values"<<endl; } return 0; }
आउटपुट
Character is repeated in both the index values Character is not repeated in both the index values Character is not repeated in both the index values