কম্পিউটার টিউটোরিয়াল

C++-এ পুনরাবৃত্ত স্ট্রিং-এ ক্যারেক্টার কোয়েরি (Queries on Repeated String)

একটি স্ট্রিং 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
  1. C++ দিয়ে ট্রি-এ সাবট্রির DFS কোয়ারী সমাধান

  2. C++ প্রোগ্রাম: নির্দিষ্ট কেসের জন্য N ক্যারেক্টারের সিকোয়েন্স জেনারেট করা

  3. C++-এ string at() ফাংশন: নির্দিষ্ট পজিশনের ক্যারেক্টার অ্যাক্সেস

  4. C++-এ স্ট্রিংর প্রতিটি ক্যারেক্টারে লুপ চালানো