আমাকে বলুন, কত স্কোয়ার আছে?


12

একটি খালি খালি 2D অ্যারে সমন্বিত দেওয়া হয়েছে 0এবং এর 14 টি কোণে সমস্ত স্কোয়ারের সংখ্যাটি সন্ধান করুন 1। স্কোয়ারগুলি "সোজা" হওয়ার দরকার নেই। সমস্ত সারি একই দৈর্ঘ্য থাকার গ্যারান্টিযুক্ত।

যুক্তিসঙ্গত ইনপুট / আউটপুট পদ্ধতি অনুমোদিত।

Testcases:

0001000
1000000
0000000
0000100
0100000

এই ফিরে আসে 1

10101
00000
10100
00000
10001

এই ফিরে আসে 2

1111
1111
1111
1111

এই ফিরে আসে 20

এটি । বাইট জিতে সংক্ষিপ্ত উত্তর। স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।


আরেকটি ব্যাখ্যা, যদি আমি উদ্দেশ্যটি বুঝতে পারি: 1একটি বর্গক্ষেত্রে 4 টি, যেমন প্রতিটি 1তার দুই প্রতিবেশীর কাছ থেকে ঘেরের সাথে সামঞ্জস্যপূর্ণ।
feersum

@ ফেয়ারসাম পরের অবস্থা প্রতিটি বর্গক্ষেত্রের জন্য সত্য, তাইনা?
ওয়াজোউ

উত্তর:


18

জাভাস্ক্রিপ্ট (ES6), 127 124 119 বাইট

Nderscore ধন্যবাদ 3 বাইট সংরক্ষণ করা

m=>(F=(x,y)=>m.map((r,Y)=>r.map((i,X)=>i?1/y?n+=x<X&y<=Y&(g=(a,b)=>(m[b+X-x]||0)[a-Y+y])(x,y)&g(X,Y):F(X,Y):0)))(n=0)|n

কিভাবে?

এই ফাংশনটি ইনপুট ম্যাট্রিক্স এম এর সমস্ত জোড়া (x, y) , (এক্স, ওয়াই) এর পুনরাবৃত্তি করে :

  • মি [x, y] = মি [এক্স, ওয়াই] = 1
  • x <এক্স
  • y ≤ Y

প্রতিটি মিলে যাওয়া জোড়া একটি বর্গক্ষেত্রের সম্ভাব্য প্রান্তের স্থানাঙ্কগুলি বর্ণনা করে। বৈষম্য গ্যারান্টি দেয় যে প্রতিটি প্রান্তটি একবারে পরীক্ষা করা হয়।

আমরা [x - dy, y + dx] এবং [X - dy, Y + dx] এ অবস্থিত কোষগুলি পরীক্ষা করার জন্য 90 ° ঘড়ির কাঁটার দিকে ঘোরানো [ভিজিটর] [dx, dy] = [এক্স - এক্স, ওয়াই - ওয়াই ] ব্যবহার করি । যদি তাদের উভয়টিতে 1 থাকে তবে আমরা একটি বৈধ স্কোয়ার পেয়েছি।

বর্গক্ষেত্র

পরীক্ষার মামলা


-2 বাইট: g=(a,b)=>(m[b+X-x]||0)[a-Y+y]-1 বাইট: ব্যবহার |nপরিবর্তে&&n
nderscore

6

এমএটিএল , 20 বাইট

&fJ*+4XN!"@&-|un3=vs

ইনপুট একটি ম্যাট্রিক্স।

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

কিভাবে এটা কাজ করে

এটি ইনপুট গ্রিডে ননজারো এন্ট্রিগুলির সমস্ত স্থানাঙ্ক খুঁজে পায় এবং এগুলি জটিল সংখ্যা হিসাবে প্রতিনিধিত্ব করে, যেমন সারি এবং কলাম সূচকগুলি যথাক্রমে আসল এবং কাল্পনিক অংশের সাথে মিলে যায়।

কোডটি একসাথে 4 টি নেওয়া এই সংখ্যার সমস্ত সংমিশ্রণের (ক্রমের কোনও বিষয় নয়) তৈরি করে। প্রতিটি সমন্বয় প্রার্থী বর্গ প্রতিনিধিত্ব করে। প্রতিটি সংমিশ্রণের জন্য, জোড়া-ভিত্তিক পরম পার্থক্যগুলির 4 × 4 ম্যাট্রিক্স (জটিল প্লেনের মধ্যে দূরত্ব) গণনা করা হয়। এটি এর প্রধান তির্যক বরাবর শূন্য সহ একটি প্রতিসম ম্যাট্রিক্স। বর্তমান সংমিশ্রণটি একটি বর্গ গঠন করে এবং কেবল যদি ম্যাট্রিক্সে ঠিক 3 টি স্বতন্ত্র মান থাকে (এগুলি বর্গাকার দিক, বর্গাকার তির্যক এবং শূন্য হবে):

এখানে চিত্র বর্ণনা লিখুন

অন্যদিকে, উদাহরণস্বরূপ, একটি বর্গাকার আয়তক্ষেত্রটি 4 টি স্বতন্ত্র মান (দুটি পক্ষ, একটি তির্যক মান এবং শূন্য) জন্ম দেয়;

এখানে চিত্র বর্ণনা লিখুন

এবং একটি সাধারণ চতুর্ভুজটির 7 টি পর্যন্ত মান (চার দিক, দুটি তির্যক এবং শূন্য) থাকতে পারে:

এখানে চিত্র বর্ণনা লিখুন

&f      % Input (implicit). Push vectors of row and column indices of nonzero entries
J*      % Multiply by imaginary unit
+       % Add the two vectors. Gives a vector of complex coordinates
4XN     % Matrix of combinations of these complex numbers, taken 4 at a time. Each
        % row is a combination
!       % Transpose
"       % For each column
  @     %   Push current column: candidate set of four points
  &-    %   All pair-wise differences
  |     %   Absolute value
  u     %   Unique entries
  n3=   %   Does the number of elements equal 3? Gives true (1) or false (0)
  vs    %   Concatenate vertically with previous accumulated result, and sum
        % End (implicit). Display (implicit)

এটা কিভাবে কাজ করে?
লিকি নুন

@ লেকিউন ব্যাখ্যা যোগ করেছেন
লুইস মেন্ডো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.