একটি স্ট্রিং str ও Q কোয়েরি দেওয়া আছে। প্রতিটি কোয়েরিতে দুটি ইন্ডেক্স a ও b থাকে। স্ট্রিংটি বারবার রিপিট হয় বলে ধরে, a ও b পজিশনের ক্যারেক্টার একই কিনা চেক করতে হবে।
উদাহরণ
str = "tutorialspoint"
Q = 2
Query = {{0, 2}, {4, 7}}
আউটপুট:
Character is repeated in both the index values Character is not repeated in both the index values
ব্যাখ্যা: ইন্ডেক্স ০ ও ২-এ 't'। ইন্ডেক্স ৪-এ 'r', ৭-এ 'l' — ভিন্ন।
অ্যালগরিদম
- যদি ইন্ডেক্স স্ট্রিং লেন্থের চেয়ে বড় হয়,
index % lenকরুন। - তারপর দুটি ক্যারেক্টার তুলনা করুন।
C++ প্রোগ্রাম
#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;
return str[a] == str[b];
}
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\n";
else
cout << "Character is not repeated in both the index values\n";
}
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