ধরুন আমাদের একটি বাইনারি ম্যাট্রিক্স আছে যেখানে 0 খালি ঘর দেখায় এবং 1 একটি ব্লক দেখায় যা একটি আকৃতি তৈরি করে, এখন আমাদের আকৃতির পরিধি খুঁজে বের করতে হবে। আকৃতির ভিতরে কোন ছিদ্র থাকবে না।
সুতরাং, যদি ইনপুট মত হয়
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
তাহলে আউটপুট 14 হবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
d :=0
-
পরিধি :=0
-
উচ্চতা :=ম্যাট্রিক্সের সারি গণনা
-
দৈর্ঘ্য :=ম্যাট্রিক্সের কলাম সংখ্যা
-
ম্যাট্রিক্সের প্রতিটি সারির জন্য, করুন
-
c :=0
-
সারিতে প্রতিটি ভ্যালের জন্য, করুন
-
যদি val 1 এর মত হয়, তাহলে
-
ঘিরে :=4
-
যদি c দৈর্ঘ্য - 1 এর সমান না হয়, তাহলে
-
যদি ম্যাট্রিক্স[d, c + 1] 1 এর মত হয়, তাহলে
-
ঘিরে :=চারপাশ - 1
-
-
-
যদি c 0 এর মত না হয়, তাহলে
-
যদি ম্যাট্রিক্স[d, c - 1] 1 এর মত হয়, তাহলে
-
ঘিরে :=চারপাশ - 1
-
-
-
যদি d উচ্চতা - 1 এর সমান না হয়, তাহলে
-
যদি ম্যাট্রিক্স[d + 1, c] 1 এর মত হয়, তাহলে
-
ঘিরে :=চারপাশ - 1
-
-
-
যদি d 0 এর মত না হয়, তাহলে
-
যদি ম্যাট্রিক্স[d - 1, c] 1 এর মত হয়, তাহলে
-
ঘিরে :=চারপাশ - 1
-
-
-
পরিধি :=পরিধি + চারপাশ
-
c :=c + 1
-
-
-
d :=d + 1
-
-
রিটার্ন পরিধি
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণির সমাধান:def solve(self, matrix):d =0 perimeter =0 height =len(matrix) length =len(matrix[0]) ম্যাট্রিক্সে লাইনের জন্য:c =0 লাইনে val এর জন্য:if val ==1:চারপাশ =4 যদি c !=দৈর্ঘ্য - 1:যদি ম্যাট্রিক্স[d][c + 1] ==1:চারপাশ -=1 যদি c !=0:যদি ম্যাট্রিক্স[d][c - 1] ==1:চারপাশ -=1 যদি d !=উচ্চতা - 1:যদি ম্যাট্রিক্স[d + 1][c] ==1:চারপাশ -=1 যদি d !=0:যদি ম্যাট্রিক্স[d - 1][c] ==1:চারপাশ -=1 ঘের +=ঘেরাউন্ড c +=1 d +=1 রিটার্ন ঘের =সমাধান() ম্যাট্রিক্স =[ [ [ 0,0,0,0,0] , [ 0,0,1,1,1 ], [0,0,1,1,0], [0,1,1,1,0], [0,0,0,0,0]]মুদ্রণ(ob.solve(matrix))
ইনপুট
<প্রি>ম্যাট্রিক্স =[[0,0,0,0,0],[0,0,1,1,1],[0,0,1,1,0],[0,1,1,1 ,0],[0,0,0,0,0]]আউটপুট
14