একটি স্ট্রিং দেওয়া, আমাদের প্রতিটি অক্ষরের ডানদিকে বড় উপাদানের সংখ্যা গণনা করতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
string = "abc"
আউটপুট
2 1 0
এর ডানদিকে a এর থেকে 2টি বড় উপাদান রয়েছে।
এর ডানদিকে b এর থেকে 1টি বড় উপাদান রয়েছে৷
এর ডানদিকে c এর থেকে 0টি বড় উপাদান রয়েছে।
অ্যালগরিদম
-
স্ট্রিং শুরু করুন।
-
গণনার ট্র্যাক রাখতে একটি অ্যারে শুরু করুন৷
-
স্ট্রিং এর উপর পুনরাবৃত্তি করতে দুটি লুপ লিখুন।
-
একবারে একটি অক্ষর নিন এবং এটির পরের সমস্ত অক্ষরের সাথে তুলনা করুন।
-
বর্তমান উপাদানটি পরবর্তী উপাদানের চেয়ে কম হলে গণনা অ্যারেতে সংশ্লিষ্ট অক্ষর সংখ্যা বৃদ্ধি করুন৷
-
-
সমস্ত অক্ষরের গণনা প্রিন্ট করুন।
বাস্তবায়ন
C++
-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হলImplementation
Following is the implementation of the above algorithm in C++
#include <bits/stdc++.h> using namespace std; void countCharNextLargerElementsCount(string str) { int len = str.length(), count[len]; for (int i = 0; i < len; i++) { count[i] = 0; } for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { if (str[i] < str[j]) { count[i]++; } } } for (int i = 0; i < len; i++) { cout << count[i] << " "; } cout << endl; } int main() { string str = "abcdefgh"; countCharNextLargerElementsCount(str); return 0; }
আউটপুট
আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।
7 6 5 4 3 2 1 0