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

পাইথনে লেটার টাইল পসিবিলিটি বের করুন

এক সেট টাইল আছে, প্রতিটি টাইলে একটি অক্ষর tiles[i] প্রিন্ট করা আছে। খালি না হয় এমন অক্ষর সিকোয়েন্সের সংখ্যা বের করতে হবে যা তৈরি করা সম্ভব।

ইনপুট "AAB" হলে আউটপুট 8। সিকোয়েন্সগুলো: "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"।

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

  • dfs() ফাংশন ডিফাইন করুন যা count নেয়
  • sum := 0
  • 1 থেকে 26 পর্যন্ত লুপ:
    • যদি count[i] == 0 হয়, তবে কন্টিনিউ
    • count[i]--, sum++
    • sum += dfs(count)
    • count[i]++
  • sum রিটার্ন
  • মূল মেথড:
    • 26 সাইজের count অ্যারে 0 দিয়ে ফিল করুন
    • tiles এর প্রতিটি i-এর জন্য count[ord(i) - ord('A') + 1]++
    • dfs(count) রিটার্ন

উদাহরণ

class Solution(object):
    def numTilePossibilities(self, tiles):
        count = [0 for i in range(27)]
        for i in tiles:
            count[ord(i) - ord('A') + 1] += 1
        return self.dfs(count)

    def dfs(self, count):
        summ = 0
        for i in range(1, 27):
            if count[i] == 0:
                continue
            count[i] -= 1
            summ += 1
            summ += self.dfs(count)
            count[i] += 1
        return summ

ob = Solution()
print(ob.numTilePossibilities("AAB"))

ইনপুট

"AAB"

আউটপুট

8
  1. পাইথনে প্রাইম নাম্বার গণনা (Count Primes)

  2. পাইথনে কাউন্ট অ্যান্ড সে (Count and Say) সিকোয়েন্স

  3. অ্যারে-এ ইনভারশন কাউন্ট করার পাইথন প্রোগ্রাম

  4. পাইথনে ক্লাস বা স্ট্যাটিক ভেরিয়েবল