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

C++-এ স্ট্রিংয়ের প্রতিটি চেরেক্টারের নির্দিষ্ট চেরেক্টার থেকে দূরত্ব বের করা


একটি স্ট্রিং এবং একটি চেরেক্টার দেওয়া আছে। স্ট্রিংয়ের প্রতিটি চেরেক্টারের ওই চেরেক্টারের কাছ থেকে ন্যূনতম দূরত্ব বের করতে হবে।

অ্যালগরিদম (Brute Force)

  • টার্গেট চেরেক্টার কোথায় কোথায় আছে, সেগুলোর ইনডেক্স একটি ভেক্টরে সংরক্ষণ করুন।
  • প্রতিটি পজিশন i-এর জন্য সব টার্গেট পজিশনের সাথে |pos - i| এর ন্যূনতম মান বের করুন।

উদাহরণ

s="tutorialspoint", ch='o' → o আছে ইনডেক্স ৩ এবং ১০-তে।

আউটপুট: 3 2 1 0 1 2 3 3 2 1 0 1 2 3

উদাহরণ কোড

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

void shortestToChar(string s, char C) {
    vector<int> pos, dist;
    for (int i = 0; i < s.size(); i++)
        if (s[i] == C) pos.push_back(i);
    
    for (int i = 0; i < s.size(); i++) {
        int mn = INT_MAX;
        for (int p : pos) mn = min(mn, abs(p - i));
        dist.push_back(mn);
    }
    for (int d : dist) cout << d << " ";
}

int main() {
    shortestToChar("tutorialspoint", 'o');
    return 0;
}

আউটপুট

3 2 1 0 1 2 3 3 2 1 0 1 2 3

  1. সি++-এ একটি রেখার মিড-পয়েন্ট বের করার প্রোগ্রাম

  2. সি++-এ ত্রিভুজের কেন্ড্রয়েড (Centroid) বের করার প্রোগ্রাম

  3. সি++-এ সমান্তরাল চতুর্ভুজের (Parallelogram) ক্ষেত্রফল বের করার প্রোগ্রাম

  4. C#-তে দেয়া স্ট্রিং-এ একটি ক্যারেক্টারের শর্টেস্ট ডিস্ট্যান্স বের করুন