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

ইংরেজি বর্ণমালার দূরত্ব অনুযায়ী ক্যারেক্টার জোড়া গণনা C++-এ

একটি স্ট্রিং দেওয়া থাকলে, এমন ক্যারেক্টার জোড়ার সংখ্যা গণনা করতে হবে যাদের মধ্যে পার্থক্য ইংরেজি বর্ণমালার দূরত্বের সমান। অর্থাৎ, |str[i] - str[j]| == |i - j| হলে সেটি একটি বৈধ জোড়া।

উদাহরণ

ইনপুট: "Tutorials Point"

বৈধ জোড়া: (u,t), (u,r), (t,r), (i,o), (s,n) → মোট 5টি

অ্যালগরিদম

  1. নেস্টেড লুপ চালান: বাহ্যিক লুপ i = 0 থেকে len-1, অভ্যন্তরীণ লুপ j = i+1 থেকে len-1।
  2. প্রতিটি জোড়ার জন্য abs(str[i] - str[j]) == abs(i - j) চেক করুন।
  3. সত্য হলে কাউন্ট বাড়ান।

সময় জটিলতা: O(n²)

C++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

int countPairsDistance(string str) {
    int count = 0;
    int len = str.length();
    
    for (int i = 0; i < len; i++) {
        for (int j = i + 1; j < len; j++) {
            int charDiff = abs(str[i] - str[j]);
            int indexDiff = abs(i - j);
            if (charDiff == indexDiff)
                count++;
        }
    }
    return count;
}

int main() {
    string str = "Tutorials Point";
    cout << "Count of pairs: " << countPairsDistance(str);
    return 0;
}

ইনপুট

"Tutorials Point"

আউটপুট

5
  1. C++-এ দুটি অ্যার থেকে একই অঙ্কযোগফল নিয়ে স্বতন্ত্র জোড়া গণনা

  2. C++-এ অ্যারেতে ভাগযোগ্য জোড়া গণনা

  3. C++-এ একই প্রতিবেশী বিশিষ্ট অক্ষর গণনা

  4. C++-এ ইংরেজি বর্ণমালার মতো একই পজিশনে থাকা অক্ষর গণনা