কম্পিউটার

একটি ম্যাট্রিক্সের সমস্ত সারি পাইথনে একে অপরের বৃত্তাকার ঘূর্ণন কিনা তা পরীক্ষা করুন


ধরুন, আমাদেরকে n*n আকারের একটি ম্যাট্রিক্স দেওয়া হয়েছে, যেখানে পূর্ণসংখ্যা রয়েছে। আমাদের খুঁজে বের করতে হবে সেই ম্যাট্রিক্সের সমস্ত সারি তার আগের সারির বৃত্তাকার ঘূর্ণন কিনা। প্রথম সারির ক্ষেত্রে, এটি n-ম সারির একটি বৃত্তাকার ঘূর্ণন হওয়া উচিত।

সুতরাং, যদি ইনপুট মত হয়

B A D C
C B A D
D C B A
A D C B

তাহলে আউটপুট হবে True।

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

  • concat :=ফাঁকা স্ট্রিং
  • আমি 0 থেকে সারির সংখ্যার মধ্যে,
      করুন
    • concat :=concat concatenate "-" concatenate ম্যাট্রিক্স[0,i]
  • concat :=concat concatenate concat
  • আমি রেঞ্জ 1 থেকে ম্যাট্রিক্সের আকারের জন্য, কর
    • curr_row :=ফাঁকা স্ট্রিং
    • 0 থেকে কলামের পরিসরে j এর জন্য, করুন
      • curr_row :=curr_row concatenate "-" concatenate ম্যাট্রিক্স[i,j]
    • যদি curr_row স্ট্রিং কনক্যাটে উপস্থিত থাকে, তাহলে
      • সত্য ফেরান
  • মিথ্যে ফেরত দিন

উদাহরণ

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

def solve(matrix) :
   concat = ""
   for i in range(len(matrix)) :
      concat = concat + "-" + str(matrix[0][i])
   concat = concat + concat
   for i in range(1, len(matrix)) :
      curr_row = ""
      for j in range(len(matrix[0])) :
         curr_row = curr_row + "-" + str(matrix[i][j])
      if (concat.find(curr_row)) :
         return True
   return False
matrix = [['B', 'A', 'D', 'C'],
         ['C', 'B', 'A', 'D'],
         ['D', 'C', 'B', 'A'],
         ['A', 'D', 'C', 'B']]
print(solve(matrix))

ইনপুট

[['B', 'A', 'D', 'C'],
['C', 'B', 'A', 'D'],
['D', 'C', 'B', 'A'],
['A', 'D', 'C', 'B']]

আউটপুট

True

  1. দুটি গাছের সমস্ত স্তর পাইথনে অ্যানাগ্রাম কিনা তা পরীক্ষা করুন

  2. পাইথন - একটি স্ট্রিংয়ের সমস্ত অক্ষরের ফ্রিকোয়েন্সি আলাদা কিনা তা পরীক্ষা করুন

  3. পাইথন - একটি তালিকার সমস্ত উপাদান একই কিনা তা পরীক্ষা করুন

  4. দুটি প্রদত্ত ম্যাট্রিক্স অভিন্ন কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম