কম্পিউটার

পাইথনে লেটার টাইলের সম্ভাবনা


ধরুন আমাদের কাছে টাইলসের একটি সেট আছে, যেখানে প্রতিটি টাইলে একটি অক্ষরের টাইলস [i] মুদ্রিত রয়েছে। আমরা যে অক্ষরগুলি তৈরি করতে পারি তার সম্ভাব্য অ-খালি ক্রমগুলির সংখ্যা খুঁজুন। সুতরাং ইনপুট যদি "AAB" হয়, তাহলে আউটপুট হবে 8। অনুক্রমগুলি হল "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি dfs() সংজ্ঞায়িত করুন, যা গণনা করবে
  • সমষ্টি :=0
  • আমি 1 থেকে 26 রেঞ্জের জন্য
    • যদি গণনা[i] =0 হয়, তাহলে বাকিগুলি পরীক্ষা না করে পরবর্তী পুনরাবৃত্তির জন্য যান
    • গণনা [i] 1 দ্বারা হ্রাস করুন এবং 1 দ্বারা যোগফল বাড়ান
    • সমষ্টি :=যোগফল + dfs(গণনা)
    • গণনা [i] 1 দ্বারা বৃদ্ধি করুন
  • রিটার্ন যোগফল
  • প্রকৃত পদ্ধতি হবে −
  • এর মত
  • 26 আকারের একটি গণনা অ্যারে তৈরি করুন এবং এটি 0 দিয়ে পূরণ করুন
  • প্রতিটি উপাদানের জন্য i টাইলসে
    • গণনা বাড়ান[i – ‘A’ + 1] 1 দ্বারা
  • dfs(গণনা) ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

শ্রেণির সমাধান(অবজেক্ট):def numTilePossibilities(self, tiles):count =[0 for i in range(27)] i in টাইলসের জন্য:count[ord(i)-ord('A')+1] +=1 রিটার্ন 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 যোগফল+=self.dfs(গণনা) গণনা 

ইনপুট

"AAB"

আউটপুট

8

  1. পাইথনে প্রাইম গণনা করুন

  2. Python এ গণনা করুন এবং বলুন

  3. পাইথন প্রোগ্রাম একটি অ্যারের মধ্যে বিপরীত গণনা

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