একটি স্ট্রিং দেওয়া আছে (দৈর্ঘ্য < 10)। স্বরবর্ণ এবং ব্যঞ্জনবর্ণের আপেক্ষিক অবস্থান বদল না করেই স্ট্রিং কতভাবে বিন্যাস করা যায় তা বের করতে হবে।
উপায়: স্বরবর্ণ এবং ব্যঞ্জনবর্ণের সংখ্যা গণনা করুন। স্বরবর্ণগুলো কতভাবে বিন্যাস করা যায় এবং ব্যঞ্জনবর্ণগুলো কতভাবে বিন্যাস করা যায় সেটি বের করুন। তারপর এই দুটিকে গুণ করুন।
অ্যালগরিদম
arrangeWayCount(str)
Begin freq array দিয়ে ফ্রিকোয়েন্সি গণনা v := স্বরবর্ণ সংখ্যা, c := ব্যঞ্জনবর্ণ সংখ্যা vArrange := v! for each vowel v in [a,e,i,o,u] do vArrange /= freq[v]! done cArrange := c! for each consonant con do cArrange /= freq[con]! done return vArrange * cArrange End
উদাহরণ
#include <iostream> using namespace std; long long factorial(int n){ ... } long long arrangeWayCount(string str){ ... } main() { string str = "computer"; long long ans = arrangeWayCount(str); cout << "Possible ways to arrange: " << ans << endl; }আউটপুট
Possible ways to arrange: 720