এই কামড়টা কি আমার ছিল?


12

গতকাল, আমি আমার স্যান্ডউইচ টেবিলের উপর রেখেছিলাম। আজ যখন আমি উঠলাম, সেখানে একটি কামড় ছিল ... এটি কি আমার ছিল? আমি মনে করতে পারি না ...

সমস্যা:

স্যান্ডউইচ এবং আমার কামড়ের প্যাটার্নের উপস্থাপনা নিন এবং বলুন এটি আমার কামড় ছিল কি না not

উদাহরণ:

উদাহরণ 1:

আমার কামড়ানোর ধরণ:

..
.

স্যান্ডউইচ:

#####
.####
..###

আউটপুট:

truthy

উদাহরণ 2:

আমার কামড়ানোর ধরণ:

..
..

স্যান্ডউইচ:

...##
..###
.####

আউটপুট:

falsy

উদাহরণ 3:

যদি কমপক্ষে 1 টি আবর্তন থাকে যা সত্য হিসাবে গণনা করে তবে আউটপুট সত্য।

আমার কামড়ানোর ধরণ:

.
 .
  .

স্যান্ডউইচ:

##.
#.#
.##

আউটপুট:

দুটি সম্ভাব্য ঘূর্ণন (উত্তর-পূর্ব বা দক্ষিণ-পশ্চিম কোণে কামড়ানো)।

truthy

কিছু বৈধ কামড়:

..
.

...
.
.

.
 .
  .

..
. .
 ..

 ..
.
. .

কিছু অবৈধ কামড়:

..

...
.

..
.
 .

নিয়মাবলী:

  • আমার কামড়ের ধাঁচের বিন্যাস সর্বদা উত্তর-পশ্চিম কোণে দংশনের জন্য থাকবে। এবং অন্যান্য কোণে কামড় দিতে অবশ্যই ঘোরানো উচিত;

  • স্যান্ডউইচটিতে সর্বদা 1 এবং কেবল 1 কামড় থাকবে;

  • স্যান্ডউইচ এ কামড় 4 কর্নের যে কোনও একটিতে (সেই অনুযায়ী ঘোরানো) হতে পারে;

  • কামড়ের ধরণগুলি সর্বদা মূল তির্যক বরাবর প্রতিসাম্যযুক্ত হবে;

  • কামড়ের ধরণগুলি সর্বদা কমপক্ষে 1 প্রশস্ত এবং খালি নয়;

  • স্যান্ডউইচ সর্বদা প্রস্থ এবং উচ্চতা সমেত বা আমার কামড়ের প্যাটার্নের প্রস্থের চেয়ে বেশি সমেত একটি আয়তক্ষেত্র হবে;

  • আপনার ইনপুটটিতে, স্যান্ডউইচ এবং কামড় উপস্থাপনের জন্য আপনি কোনও 2 স্বতন্ত্র সাদা-সাদা বর্ণ চয়ন করতে পারেন;

  • কামড়ের প্যাটার্নের ফাঁকির অর্থ হ'ল আমার কামড়টি স্যান্ডউইচের সেই অংশটিকে স্পর্শ করে না।


কামড়ের প্যাটার্নটি কি স্যান্ডউইচের চেয়ে বড় হতে পারে? কামড়ানোর ধরণটি কি খালি থাকতে পারে? কামড়ের ধরণটি কি স্যান্ডউইচের মতো হতে পারে? অর্থাত .., ..?
TheLethalCoder

@ লেথলকোডার নিয়মগুলি বলছে যে কামড়ের প্যাটার্নটি সর্বদা স্যান্ডউইচকে ফিট করে। আমি সর্বনিম্ন আকার (1 প্রস্থ) নির্দিষ্ট করতে একটি নতুন নিয়ম যুক্ত করব
ফিলিপ নারদী

@ দ্য লেথলকোডার এবং হ্যাঁ, কামড়ের প্যাটার্নটি স্যান্ডউইচের মতো হতে পারে
ফিলিপ

উত্তর:


2

রুবি , 103 বাইট 101 বাইট

->b,s{[a=s.map(&:reverse),s,s.reverse,a.reverse].any?{|t|b.zip(t).all?{|y,x|y==x.tr(?#,' ').rstrip}}}

এটি অনলাইন চেষ্টা করুন!

অ্যাসাইনমেন্টটি এ এর ​​প্রথম ব্যবহারে স্থানান্তরিত করে 2 বাইট সংরক্ষণ করা। স্পষ্টতই রুবি যথেষ্ট স্মার্ট যে অ্যারে সংজ্ঞা এবং কমাগুলি একইসাথে চলক অ্যাসাইনমেন্ট থেকে উদ্ভূত হবে (কমপক্ষে এই ক্ষেত্রে: ডি)


2

পাইথন 2 , 134 বাইট

b,s=input()
a=[''.join(l[::-1])for l in s]
print any(b==[l.replace('#',' ').rstrip()for l in x][:len(b)]for x in(a,a[::-1],s[::-1],s))

দুটি স্ট্রিংয়ের তালিকা হিসাবে প্রতিটি ইনপুট নেয় (প্রতিটি লাইনের জন্য একটি)। লাইনগুলিতে কোনও চলমান শ্বেত স্পেস ধরে নেই।

এটি অনলাইন চেষ্টা করুন!

উদাহরণ:

Input: ['..','.'],['#####','.####','..###'] (example 1)
>True

Input: ['..','..'],['...##','..###','.####'] (example 2)
>False

Input: ['',' .'],['#####','#.###','#####'] (no bite in top row)
>True

1

পাইথন 2, 173 বাইট

এটি অনলাইনে চেষ্টা করুন

S,b=input()
L=len
B=map(lambda x:[y<'.'and'#'or y for y in x]+['#']*(L(S[0])-L(x)),b+[[]]*(L(S)-L(b)))
R=map(lambda x:x[::-1],B)
print S==B or S==B[::-1]or S==R[::-1]or S==R

অক্ষরের তালিকার দুটি তালিকা হিসাবে ইনপুট নেয়।
প্রথম - স্যান্ডউইচ
দ্বিতীয় - কামড়

প্রথমে এটি স্যান্ডউইচ অ্যারের আকারে কামড়ের অ্যারে প্রসারিত করে:

B=map(lambda x:[y<'.'and'#'or y for y in x]+['#']*(L(S[0])-L(x)),b+[[]]*(L(S)-L(b)))

[y<'.'and'#'or y for y in x]সমস্ত স্থানকে প্রতিস্থাপিত করে #
(L(S[0])-L(x)),b+[[]]*(L(S)-L(b))অনুপস্থিত উপাদানগুলির সংখ্যা গণনা করে

তারপরে এটি এই "বর্ধিত" কামড়ের সমস্ত 4 ঘূর্ণন স্যান্ডউইচের সাথে তুলনা করে:

R=lambda:map(lambda x:x[::-1],B)
print S==B or S==B[::-1]or S==R()or S==R()[::-1]
print any(map(S.__eq__,[B,B[::-1],R(),R()[::-1]])) #longer but pretty

লাম্বদা আর তালিকাগুলির তালিকাটি অনুভূমিকভাবে মিরর করতে ব্যবহৃত হয়

সংযুক্ত উদাহরণে স্যান্ডউইচটি হ'ল:

##.
#.#
###

এবং কামড়টি হ'ল:

.
 .

1
কেন R=Lambda:map...এবং নাR=map...
ফিলিপ নারদী বাটিস্তা

@ ফিলিপনার্দিবাটিস্তা কারণ আমি এটি মিস করেছি: ডি ধন্যবাদ!
ডেড পসুম

B=[[y<'.'and'#'or y for y in x]+['#']*(L(S[0])-L(x))for x in b+[[]]*(L(S)-L(b))]-4
ovs 20'17

এবং R=[x[::-1]for x in B]-4 পাশাপাশি। সাধারণভাবে, ল্যাম্বডা ফাংশন সহ মানচিত্রটি ব্যবহার করবেন না
ovs
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.