एक स्ट्रिंग दी गई है, हमें प्रत्येक वर्ण के दाईं ओर बड़े तत्वों की संख्या गिननी है। आइए एक उदाहरण देखते हैं।
इनपुट
string = "abc"
आउटपुट
2 1 0
'a' के दाईं ओर 2 बड़े तत्व हैं।
'b' के दाईं ओर 1 बड़ा तत्व है।
'c' के दाईं ओर 0 बड़े तत्व हैं।
एल्गोरिदम
- स्ट्रिंग को आरंभ करें।
- काउंट ट्रैक करने के लिए एक सरणी आरंभ करें।
- स्ट्रिंग पर पुनरावृति करने के लिए दो लूप लिखें।
- एक समय में एक वर्ण लें और उसकी तुलना उसके बाद के सभी वर्णों से करें।
- यदि वर्तमान तत्व अगले तत्व से छोटा है तो काउंट सरणी में संबंधित वर्ण काउंट बढ़ाएं।
- सभी वर्णों का काउंट प्रिंट करें।
कार्यान्वयन
उपरोक्त एल्गोरिदम का 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