एक स्ट्रिंग को देखते हुए, हमें प्रत्येक वर्ण के दाईं ओर बड़े तत्वों की संख्या गिननी होगी। आइए एक उदाहरण देखें।
इनपुट
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