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

পাইথন - ক্যারেক্টার রিপিটিশন স্ট্রিং কোম্বিনেশন জেনারেট করা

একটি স্ট্রিংয়ের ক্যারেক্টারগুলো দিয়ে রিপিটিশন এনাবল করে সব সম্ভাব্য কোম্বিনেশন (পারমুটেশন উইথ রিপিটিশন) জেনারেট করতে রিকার্সিভ ফাংশন ব্যবহার করা হয়।

উদাহরণ

def to_string(my_list):
    return ''.join(my_list)

def lex_recurrence(my_string, my_data, last_val, index_val):
    length = len(my_string)
    for i in range(length):
        my_data[index_val] = my_string[i]
        if index_val == last_val:
            print(to_string(my_data))
        else:
            lex_recurrence(my_string, my_data, last_val, index_val + 1)

def all_lex(my_string):
    length = len(my_string)
    my_data = [""] * (length + 1)
    my_string = sorted(my_string)
    lex_recurrence(my_string, my_data, length - 1, 0)

my_string = "MQ"
print("The string is :")
print(my_string)
print("All permutations with repetition of " + my_string + " are...")
all_lex(my_string)

আউটপুট

The string is : MQ
All permutations with repetition of MQ are...
MM
MQ
QM
QQ

ব্যাখ্যা

  • to_string: লিস্টকে স্ট্রিংয়ে জয়েন করে।
  • lex_recurrence: রিকার্সিভ ফাংশন, প্রতিটি পজিশনে সব ক্যারেক্টার ট্রাই করে।
  • all_lex: স্ট্রিং সর্ট করে, বাফার বান করে, রিকার্সন শুরু করে।
  • লেন্থ ২ স্ট্রিং-এর জন্য ২^২ = ৪টি কোম্বিনেশন তৈরি হয়।

নোট: এটি পারমুটেশন উইথ রিপিটিশন (n^r)। যদি রিপিটিশন না চান, তবে itertools.permutations ব্যবহার করুন।

  1. পাইথনে স্ট্রিং থেকে nth ক্যারেক্টার রিমুভ করা

  2. পাইথনের startswith() ও endswith() ফাংশন ব্যবহার নির্দেশিকা

  3. পাইথনে <code>zfill()</code> মেথড কী?

  4. পাইথনে স্ট্রিং-এ কোনো ক্যারেক্টার অক্ষর কিনা চেক করা