एक स्ट्रिंग वर्णों की एक सरणी है . और यह समस्या स्ट्रिंग के तत्वों को वैकल्पिक ऊपरी और निचले मामले के साथ क्रमबद्ध करना है।
समस्या का विवरण - वैकल्पिक निचला ऊपरी स्ट्रिंग सॉर्ट, एक समस्या है जिसमें हमें एक अनियंत्रित स्ट्रिंग प्रदान की जाती है जिसमें मिश्रित ऊपरी और निचले अक्षर होते हैं और हमें इस स्ट्रिंग को इस तरह से सॉर्ट करने की आवश्यकता होती है कि ऊपरी और निचले केस वर्ण वैकल्पिक स्थिति में रखे जाते हैं लेकिन अंदर होते हैं एक क्रमबद्ध तरीके से।
आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं,
Input : aFegrAfStRzsV Output : AaFeRfSgVrstz Explanation : Upper case characters : A F R S V Lower case characters : a e f g r s t z
दोनों एक क्रमबद्ध तरीके से हैं इसलिए अब हम उन्हें वैकल्पिक क्रम में रख सकते हैं।
अब, जब से हम समस्या को समझ गए हैं। आइए इसका समाधान तैयार करें। एक तरह से अपरकेस और लोअरकेस अक्षरों दोनों के लिए क्रमबद्ध क्रम में सरणियाँ बनाना और फिर उन्हें अंतिम स्ट्रिंग में बदलना है। हमने इस तर्क के आधार पर एक एल्गोरिथम बनाया है।
एल्गोरिदम
Step 1 : In an array lowercount[] add all lowercase characters in sorted order. Step 2 : In an array uppercount[] add all uppercase characters in sorted order. Step 3 : Create the final string using alternate values from both arrays. Step 4 : Print the result array.
उदाहरण
#include <iostream> using namespace std; #define MAX 26 void alternateULSort(string& s) ; int main(){ string str = "aFegrAfStRzsV"; cout<<"The unsorted string is : "<<str; cout<<"\nThe alternate lower upper sorted string is "; alternateULSort(str); cout << str << "\n"; } void alternateULSort(string& s){ int n = s.length(); int lowerCount[MAX] = { 0 }, upperCount[MAX] = { 0 }; for (int i = 0; i < n; i++) { if (isupper(s[i])) upperCount[s[i] - 'A']++; else lowerCount[s[i] - 'a']++; } int i = 0, j = 0, k = 0; while (k < n) { while (i < MAX && upperCount[i] == 0) i++; if (i < MAX) { s[k++] = 'A' + i; upperCount[i]--; } while (j < MAX && lowerCount[j] == 0) j++; if (j < MAX) { s[k++] = 'a' + j; lowerCount[j]--; } } }
आउटपुट
The unsorted string is : aFegrAfStRzsV The alternate lower upper sorted string is AaFeRfSgVrstzहै