চ্যালেঞ্জ
একটি বাইনারি ম্যাট্রিক্স এবং একটি বাইনারি স্ট্রিং দেওয়া, নির্ধারণ করুন যে বাইনারি স্ট্রিংটি ম্যাট্রিক্সের যে কোনও বিন্দুতে শুরু হয়ে বাইনারি স্ট্রিং গঠনের জন্য পরবর্তী কোনও বিন্দুতে কোনও দিকে অগ্রসর হতে পারে কিনা। অর্থাৎ, ম্যাট্রিক্সের অভ্যন্তরে তবে স্ট্রিংটি ভাঁজ করে পাওয়া যাবে?
স্ট্রিংটি কেবল 90 ডিগ্রি বা 180 ডিগ্রি (প্রান্ত সংযোগগুলি; ম্যানহাটন দূরত্ব 1) এ ভাঁজ করা যায় এবং কোনও পয়েন্টে নিজেকে ওভারল্যাপ করতে পারে না।
উদাহরণ
আসুন নীচের উদাহরণটি ধরুন:
Matrix:
010101
111011
011010
011011
Snake: 0111111100101
এটি একটি সত্যবাদী পরীক্ষার মামলা। আমরা দেখতে পাচ্ছি যে সাপটি নিম্নলিখিত অবস্থানে ভাঁজ হয়েছে:
0-1 0 1 0 1
|
1 1 1-0 1 1
| | | |
0 1 1 0-1-0
| |
0 1-1 0 1 1
বিধি
- স্ট্যান্ডার্ড লুফোলস প্রয়োগ করুন
- আপনি চাইলে স্ট্রিংয়ের দৈর্ঘ্য এবং ম্যাট্রিক্সের প্রস্থ এবং উচ্চতা ইনপুট হিসাবে নিতে পারেন
- আপনি বাইনারি ম্যাট্রিক্স এবং বাইনারি স্ট্রিংকে স্ট্রিংয়ের একাধিক স্ট্রিং / অ্যারে / নিউলাইন-যুক্ত স্ট্রিং / অন্য যে কোনও কিছুতে যুক্ত-স্ট্রিং এবং একটি স্ট্রিং হিসাবে নিতে পারেন
- আপনি কয়েকটি যুক্তির পরিবর্তে ফ্ল্যাট অ্যারে হিসাবে মাত্রা নিতে পারেন
- আপনার প্রোগ্রামটি অবশ্যই এক মিনিটের মধ্যে 10 দৈর্ঘ্য পর্যন্ত কোনও স্ট্রিং সহ 5 x 5 ম্যাট্রিক্সের জন্য শেষ করতে হবে
সীমাবদ্ধতা
- ম্যাট্রিক্স অগত্যা বর্গক্ষেত্রের নয়
- স্ট্রিংটি খালি থাকবে না
- স্ট্রিং দৈর্ঘ্য -1 হতে পারে
- স্ট্রিংটিতে উপলব্ধের চেয়ে বেশি স্কোয়ার থাকবে না (এটি হ'ল
len(string) <= width(matrix) * height(matrix)
পরীক্ষার মামলা
Truthy
01010
10101
01010
10101
01010
0101010101010101010101010
01110
01100
10010
10110
01101
011111000110100
0
0
10
01
1010
100
010
001
100010001
Falsy
00000
00000
00000
00000
00000
1
10101
01010
10101
01010
10101
11
100
010
001
111
10001
01010
00100
01010
10001
1000100010001000101010100