কম্পিউটার

একটি অক্ষরের সর্বনিম্ন দূরত্ব খুঁজে পেতে C++ প্রোগ্রাম


একটি স্ট্রিং 'a' এবং একটি অক্ষর 'char' দেওয়া, কাজ হল প্রদত্ত স্ট্রিংয়ের প্রতিটি অক্ষর থেকে 'char'-এর দূরত্ব প্রিন্ট করা। দূরত্বের অ্যারের আকার স্ট্রিংয়ের আকারের সমান, যেহেতু আমাদের প্রদত্ত স্ট্রিংয়ের প্রতিটি অক্ষর থেকে অক্ষরের দূরত্ব খুঁজে বের করতে হবে।

উদাহরণস্বরূপ

ইনপুট-1:

a = “tutorialspoint”

char = “o”

আউটপুট:

[ 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3]

ব্যাখ্যা: প্রদত্ত স্ট্রিংটিতে, প্রদত্ত স্ট্রিংটির প্রতিটি অক্ষর থেকে অক্ষরের দূরত্ব হল [3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3]।

ইনপুট-2:

a = “programmer”

char = “r”

আউটপুট:

[1, 0, 1, 2, 0, 1, 2, 3, 4, 0 ]

ব্যাখ্যা: প্রদত্ত স্ট্রিং-এ, প্রদত্ত স্ট্রিং-এর প্রতিটি অক্ষর থেকে 'r'-এর দূরত্ব হল [1, 0, 1, 2, 0, 1, 2, 3, 4, 0]৷

এই সমস্যা সমাধানের পদ্ধতি

এই সমস্যা সমাধানের জন্য একটি ব্রুট ফোর্স পদ্ধতি হল স্ট্রিং-এ প্রদত্ত অক্ষরের অবস্থান খুঁজে বের করা এবং অ্যারেতে সংরক্ষণ করা। এখন প্রদত্ত স্ট্রিং-এ অক্ষরের ন্যূনতম দূরত্ব খুঁজে বের করতে পুরো স্ট্রিং এর পাশাপাশি অবস্থান অ্যারেতে পুনরাবৃত্তি করুন।

  • ইনপুট হিসাবে একটি স্ট্রিং এবং একটি অক্ষর 'char' নিন।
  • একটি ফাংশন ডিসটেন্স টচার (স্ট্রিং a, char ch) একটি স্ট্রিং এবং একটি অক্ষরকে একটি ইনপুট হিসাবে নেয় এবং প্রদত্ত স্ট্রিং এর প্রতিটি অক্ষর থেকে প্রদত্ত অক্ষরের দূরত্ব প্রিন্ট করে।
  • স্ট্রিং 'a' এর উপর পুনরাবৃত্তি করুন এবং প্রদত্ত অক্ষরের অবস্থান ভেক্টরে সংরক্ষণ করুন।
  • এখন স্ট্রিং এবং পজিশন অ্যারের উপর পুনরাবৃত্তি করুন এবং স্ট্রিংটিতে অক্ষরের দূরত্ব গণনা করুন।
  • পজিশন অ্যারে প্রিন্ট করুন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
void shortestToChar(string a, char C) {
   vector < int > pos, dist;
   for (int i = 0; i < a.size(); i++) {
      if (a[i] == C)
         pos.push_back(i);
   }
   for (int i = 0; i < a.size(); i++) {
      int mn = INT_MAX;
      for (int j = 0; j < pos.size(); j++) {
         mn = min(mn, abs(pos[j] - i));
      }
      dist.push_back(mn);
   }
   for (auto i: dist) {
      cout << i << " ";
   }
}
int main() {
   string a = "tutorialspoint";
   char ch {
      'o'
   };
   shortestToChar(a, ch);
}

উপরের কোডটি চালানোর ফলে আউটপুট তৈরি হবে,

আউটপুট

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

"টিউটোরিয়ালপয়েন্ট" স্ট্রিং এর 'o' অক্ষরটি সূচী 3 এবং সূচী 10 এ উপস্থিত রয়েছে। সুতরাং, যদি আমরা এর আগে এবং পরে অক্ষর থেকে এর নিকটতম দূরত্ব গণনা করি তবে আমরা দূরত্বগুলি [3 2 1 0 1 2' হিসাবে পাব। 3 3 2 1 0 1 2 3]।


  1. C++ এ একটি লাইনের মধ্যবিন্দু খুঁজে বের করার জন্য প্রোগ্রাম

  2. C++ এ ত্রিভুজের সেন্ট্রোয়েড খুঁজে বের করার প্রোগ্রাম

  3. C++ এ সমান্তরালগ্রামের ক্ষেত্রফল বের করার প্রোগ্রাম

  4. C# ব্যবহার করে একটি প্রদত্ত স্ট্রিং-এ একটি অক্ষরের সর্বনিম্ন দূরত্ব কীভাবে খুঁজে পাবেন?