কম্পিউটার টিউটোরিয়াল

পাইথনে স্ট্রিংর size r পারমুটেশন বের করার প্রোগ্রাম

ধরুন আমাদের একটি স্ট্রিং s এবং একটি সংখ্যা r আছে। আমাদের s-এর r সংখ্যক ক্যারেক্টারের সব পারমুটেশন ডিসপ্লে করতে হবে। itertools লাইব্রেরিতে permutations() ফাংশন আছে যা সব পারমুটেশন বের করতে সাহায্য করে।

উদাহরণস্বরূপ, যদি ইনপুট s = "HELLO" এবং r = 3 হয়, তবে আউটপুট হবে:

['HEL', 'HEL', 'HEO', 'HLE', 'HLL', 'HLO', 'HLE', 'HLL', 'HLO', 'HOE', 'HOL', 'HOL', 'EHL', 'EHL', 'EHO', 'ELH', 'ELL', 'ELO', 'ELH', 'ELL', 'ELO', 'EOH', 'EOL', 'EOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'OHE', 'OHL', 'OHL', 'OEH', 'OEL', 'OEL', 'OLH', 'OLE', 'OLL', 'OLH', 'OLE', 'OLL']

সমাধানের ধাপসমূহ

  • vals := list(permutations(s, r)) - s-এর r সাইজের সব পারমুটেশন
  • res := []
  • প্রতিটি x ইন vals এর জন্য:
    • x-কে স্ট্রিংয়ে কনভার্ট করে res-এ ইনসার্ট করুন
  • res রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

from itertools import permutations

def solve(s, r):
    vals = list(permutations(s, r))
    res = []
    for x in vals:
        res.append(''.join(x))
    return res

s = "HELLO"
r = 3
print(solve(s, r))

ইনপুট

"HELLO", 2

আউটপুট

['HEL', 'HEL', 'HEO', 'HLE', 'HLL', 'HLO', 'HLE', 'HLL', 'HLO', 'HOE', 'HOL', 'HOL', 'EHL', 'EHL', 'EHO', 'ELH', 'ELL', 'ELO', 'ELH', 'ELL', 'ELO', 'EOH', 'EOL', 'EOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'OHE', 'OHL', 'OHL', 'OEH', 'OEL', 'OEL', 'OLH', 'OLE', 'OLL', 'OLH', 'OLE', 'OLL']
  1. দেওয়া স্ট্রিংয়ের সকল পারমিউটেশন প্রিন্ট করার পাইথন প্রোগ্রাম

  2. পাইথনে স্ট্রিং-এ সব ক্যারেক्टर ইউনিক কিনা চেক করা

  3. পাইথনে স্ট্রিংয়ের সকল সম্ভাব্য পারমুটেশন বের করা

  4. পাইথনে স্ট্রিং-এর আকার পাওয়া