একটি ম্যাট্রিক্সে একটি সারিতে / কলামে একটি সংখ্যক ক্রমাগত সংঘটন রয়েছে?


20

একটি ম্যাট্রিক্স নিন একটি ধনাত্মক পূর্ণসংখ্যা গঠিত, এবং পূর্ণসংখ্যা একটি একক ধনাত্মক এন ইনপুট হিসাবে, এবং তা নির্ধারণ আছে যদি অন্তত এন ম্যাট্রিক্স কোনো সারি বা কলাম একই সংখ্যা পরপর ঘটনার।

আপনার কেবল অনুভূমিক এবং উল্লম্বভাবে পরীক্ষা করা দরকার।

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

N = 1
A = 
1
Result: True
----------------
N = 3
A = 
1 1 1
2 2 3
Result: True
----------------
N = 4
A = 
1 1 1
2 2 3
Result: False
----------------
N = 3
A = 
3 2 3 4 2 1
4 1 4 2 4 2
4 2 3 3 4 1
1 1 2 2 3 4
3 2 3 1 3 1
1 1 2 2 3 4
Result: True
----------------
N = 1
A = 
5 2 3 8
Result: True
----------------
N = 3
111   23  12    6
111   53   2    5
112  555   5  222
Result: False
----------------
N = 2
 4  2  6  2  1  5
 2  3  3  3  3  3
11 34  4  2  9  7
Result: True

ব্যাখ্যা সবসময় একটি ভাল জিনিস :)


5
আপনি ম্যাট্রিক্স ভালবাসেন বলে মনে হচ্ছে।
Okx

4
ভাল, আমি একজন ম্যাটল্যাব লোক ... মাদুর রিক্স ল্যাব বক্তৃতা =)
স্টিভি গ্রিফিন

সত্যবাদী / মিথ্যা মান ফেরত দেওয়া কি যথেষ্ট?
ডেনিস

@ ডেনিস অবশ্যই
স্টিভি গ্রিফিন

5
বিরক্তিকরভাবে, আপনি একজন মতলব লোক হওয়ার কারণে, আপনি চ্যালেঞ্জগুলি তৈরি করেছেন যা ম্যাটল্যাবগুলিতে সহজ বলে মনে হচ্ছে তবে একটি সামান্য মোচড় দিয়ে গেছে যা সুস্পষ্ট সমাধানের
রায় দেয়

উত্তর:


7

কাস্তে , 9 বাইট

≤▲mLṁgS+T

একটি 2 ডি অ্যারে এবং একটি সংখ্যা নেয়, 0মিথ্যা উদাহরণগুলির জন্য ফেরত দেয় এবং সত্যবাদী উদাহরণগুলির জন্য ধনাত্মক সংখ্যা দেয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

হুশ একটি কার্যকরী ভাষা, সুতরাং প্রোগ্রামটি বেশ কয়েকটি ফাংশনের একটি সংমিশ্রণ মাত্র।

≤▲mLṁgS+T
        T  Transpose the array
      S+   and concatenate with original.
           We get a list of the rows and columns of the input array.
    ṁ      Map and concatenate
     g     grouping of equal consecutive elements.
           This gives all consecutive runs on rows and columns.
  mL       Map length over the runs,
 ▲         take the maximum of the results
≤          and see if it's at least the second input.

5

ডায়ালগ এপিএল, 27 25 23 বাইট

{1∊∊⍷∘⍵¨(⊢,⍪¨)⍺/¨⍳⌈/∊⍵}

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

প্রত্যেকটি -২ বাইটের জন্য @ মার্টিনএেন্ডার এবং @ জগারবকে ধন্যবাদ (রচনাটি ব্যবহারের প্রয়োজনীয়তা wএবং অর্থহীন প্যারেনগুলি সরিয়ে দেয় )

গল্ফের কোনও সমস্যা এবং / অথবা বাইটস থাকলে আমাকে সতর্ক করুন। বাম যুক্তি হ'ল এন , ডান যুক্তি হ'ল

ব্যাখ্যা:

{1∊∊⍷∘⍵¨(⊢,⍪¨)⍺/¨⍳⌈/∊⍵}
                     ⍵    - Right argument
                    ∊     - Flatten the array
                 ⍳⌈/      - 1 ... the maximum (inclusive)
              ⍺/¨         - Repeat each item ⍺ (left argument) times.
        (⊢,⍪¨)            - Argument concatenated with their transposes.
    ⍷∘⍵¨                  - Do the patterns occur in ⍵?
   ∊                      - Flatten (since we have a vector of arrays)
 1∊                       - Is 1 a member?
{                     }   - Function brackets

4

পার্ল 6 , 60 বাইট

{(@^m|[Z,] @^m).map(*.rotor($^n=>$^n-1).map({[==] $_}).any)}

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

  • @^mইনপুট ম্যাট্রিক্স (প্রথম যুক্তি) এবং $^n(দ্বিতীয় যুক্তি) পরীক্ষা করার জন্য পরপর সংখ্যার সংখ্যা।
  • [Z,] @^m ইনপুট ম্যাট্রিক্সের স্থানান্তর।
  • (@^m | [Z,] @^m)ইনপুট ম্যাট্রিক্স এবং এর ট্রান্সপোজের একটি বা জংশন। mapযদি $^nক্রমাগত সমান মানগুলি যদি আমন্ত্রণকারীর কোনও সারিতে ঘটে থাকে তবে নিম্নলিখিতটি সত্যবাদী মানটিকে মূল্যায়ন করে । ইনপুট ম্যাট্রিক্স বা এর ট্রান্সপোজ প্রয়োগ করা হয়েছে, এটি যদি সত্যায়িত মূল্যতে মূল্যায়ন করে তবে যদি ইনপুট ম্যাট্রিক্স বা এর ট্রান্সপোজিতে $^nকোনও সারিতে পরপর সমান মান থাকে ; যদি ট্রান্সপোজ সেই শর্তটি পূরণ করে, তার অর্থ ইনপুট ম্যাট্রিক্সের $^nতার একটি কলামে পরপর সমান মান রয়েছে।
  • *.rotor($^n => $^n - 1)প্রতিটি সারিটি $^n-লিমেন্ট স্লাইসের ক্রমে পরিণত করে । উদাহরণস্বরূপ, যদি $^n3 হয় এবং একটি সারি হয় তবে <1 2 2 2 3>এটি মূল্যায়ন করে (<1 2 2>, <2 2 2>, <2 2 3>)
  • .map({ [==] $_ })প্রতিটি স্লাইসকে বুলিয়ানে পরিণত করে যা স্লাইসের সমস্ত উপাদান সমান কিনা তা নির্দেশ করে। পূর্ববর্তী উদাহরণ অবিরত, এটি হয়ে যায় (False, True, False)
  • .any বুলিয়ানগুলির ক্রমটিকে একটি বা জংশনে রূপান্তরিত করে যা বুলিয়ানগুলির মধ্যে যদি সত্য হয় তবে এটি সত্য।

আউটপুটটি সত্যবাদী বা জংশন মান যা সত্য তবে যদি ইনপুট ম্যাট্রিক্স বা এর ট্রান্সপোজের কোনও সারি থাকে যেখানে $^nধারাবাহিক মান সমান হয়।


4

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

t!YdY'wg)>~a

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

একটি বর্গক্ষেত্রের ম্যাট্রিক্সটি উল্লম্ব বা অনুভূমিকভাবে এর ট্রান্সপোসে সঠিকভাবে সংমিশ্রিত হতে পারে না। সুতরাং কোডটি একটি ব্লক-ডায়াগোনাল ম্যাট্রিক্স তৈরি করে তির্যকভাবে তাদেরকে সম্মিলিত করে।

ফলাফল ম্যাট্রিক্স কলাম-প্রধান ক্রমে লাইনারিযুক্ত এবং রান-দৈর্ঘ্যের এনকোডযুক্ত। ব্লক-ডায়াগোনাল কনটেন্টেশন থেকে প্রাপ্ত শূন্যগুলি প্রকৃত মানগুলির রানকে আলাদা করতে দেয়।

রান-লেংথ এনকোডিংয়ের ফলাফলগুলি মানগুলির একটি অ্যারে এবং রান-দৈর্ঘ্যের একটি অ্যারে। শূন্য-না মান মান অনুসারে রান দৈর্ঘ্য রাখা হয়। আউটপুটটি 1যদি সেই দৈর্ঘগুলির কিছু ইনপুট সংখ্যার চেয়ে বড় বা সমান হয় এবং 0অন্যথায়।

এটিকে আরও পরিষ্কার করার জন্য মধ্যবর্তী ফলাফলগুলি দেখুন। ইনপুট বিবেচনা করুন

[10 10 10;
 20 20 30]

এবং

3

ইনপুট ম্যাট্রিক্স এবং এর ট্রান্সপোজ (কোড t!Yd) সমন্বিত ব্লকটি তির্যক ম্যাট্রিক্স হ'ল:

10 10 10  0  0
20 20 30  0  0
 0  0  0 10 20
 0  0  0 10 20
 0  0  0 10 30

এই ম্যাট্রিক্সটি কলাম-প্রধান ক্রমে অন্তর্ভুক্ত রৈখিকরূপে (নীচে, তারপরে ওপারে):

10 20  0  0  0 10 20  0  0  0 10 30  0  0  0  0  0 10 10 10  0  0 20 20 30

রান-লেংথ এনকোডিং (কোড Y') নিম্নলিখিত দুটি ভেক্টর দেয় (এখানে সারি ভেক্টর হিসাবে দেখানো হয়েছে; আসলে তারা কলাম ভেক্টর): মান সহ ভেক্টর

10 20  0 10 20  0 10 30  0 10  0 20 30

এবং রান দৈর্ঘ্য সহ ভেক্টর

1 1 3 1 1 3 1 1 5 3 2 2 1

অ-শূন্য মানগুলি (কোড wg)) দেয় কেবল দৈর্ঘ্যকে সংশোধন করে

1 1 1 1 1 1 3 2 1

ইনপুট নম্বর (কোড >~) এর চেয়ে কোন দৈর্ঘ্যটি ভেক্টর উত্পাদন করে তার তুলনা করা

0 0 0 0 0 0 1 0 0

পরিশেষে, উপরের ভেক্টরটিতে কমপক্ষে একটি এন্ট্রি (কোড ) থাকলে আউটপুট true(হিসাবে প্রদর্শিত হবে 1) হওয়া উচিত । এই ক্ষেত্রে ফলাফল হয়truea

1

4

অক্টাভা, 77 70 বাইট

@(A,N)any(([x y]=runlength([(p=padarray(A,[1 1]))(:);p'(:)]))(!!y)>=N)

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

ব্যাখ্যা: যেহেতু থা ম্যাট্রিক্সে কেবল অ-শূন্য পূর্ণসংখ্যা রয়েছে আমরা ম্যাট্রিক্সের চারপাশে 0 এর একটি সীমানা যোগ করতে পারি এবং ম্যাট্রিক্সের কম্পিউট রানলেইনথ এনকোডিং (একটি ভেক্টরের সাথে পুনরায় আকার দেওয়া)

@(A,N)any(([x y]=runlength([(p=padarray(A,[1 1]))(:);p'(:)]))(!!y)>=N)
                             p=padarray(A,[1 1])                        % add a border of 0s around the matrix 
                            (                   )(:)                    % reshape the matrix to a column vector
                                                     p'(:)              % transpose of the matrix reshaped to a column vector
                           [                        ;     ]             % concatenate two vectors vertically
           [x y]=runlength(                                )            % runlength encoding of the vector[x=count,y=value]
          (                                                 )           % take x,counts.
                                                             (!!y)      % extrect those counts that their valuse aren't 0
      any(                                                        >=N)  % if we have at least a count that is greater than or equal to N                                                              

3
আমি আপনার সমাধানগুলি সত্যিই পছন্দ করি (কেবল এটিই নয়) তবে তারা অবশ্যই কিছু ব্যাখ্যা থেকে উপকৃত হতে পারে! :) আমি জানতাম না অক্টাভা ছিল runlength... প্রতিদিন নতুন কিছু শিখুন ...
স্টিভি গ্রিফিন

আমাকে সম্পর্কে মনে করিয়ে দেওয়ার জন্য ধন্যবাদ runlength! মতলবকে কেন্দ্র করে বেশি মনোনিবেশ করায়, আমি মনে করতে পারি না যে অষ্টাভে
লুইস মেন্ডো

@ স্টিভিগ্রিফিন ধন্যবাদ, জেগে ওঠার পরে উত্তর উত্তর আপডেট হয়েছে!
rahnema1

@ লুইস মেন্ডো আপনার পোস্টগুলির একটির পরে আমি একটি ফাংশন সম্পর্কে সচেতন হয়েছি runlength
rahnema1

4

জেলি , 9 8 বাইট

;ZjṡƓE€S

ম্যাট্রিক্সকে আর্গুমেন্ট হিসাবে গ্রহণ করে এবং STDIN থেকে পূর্ণসংখ্যা পড়ে।

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

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

;ZjṡƓE€S  Main link. Argument: M (matrix / row array)

 Z        Zip/transpose M.
;         Concatenate the row array with the column array.
  j       Join the rows and columns, separating by M.
    Ɠ     Read an integer n from STDIN.
   ṡ      Split the result to the left into overlapping slices of length 2.
     E€   Test the members of each resulting array for equality.
       S  Take the sum.

উদাহরণ রান

;ZjṡƓE€S  Argument: [[1, 2], [3, 2]]. STDIN: 2

 Z        [[1, 3], [2, 2]]

;         [[1, 2], [3, 2], [1, 3], [2, 2]]

  j       [1, 2, [1, 2], [3, 2], 3, 2, [1, 2], [3, 2], 1, 3, [1, 2], [3, 2], 2, 2]

    Ɠ     2

   ṡ      [[1, 2],             [2, [1, 2]],        [[1, 2], [3, 2]],   [[3, 2], 3],
           [3, 2],             [2, [1, 2]],        [[1, 2], [3, 2]],   [[3, 2], 1],
           [1, 3],             [3, [1, 2]],        [[1, 2], [3, 2]],   [[3, 2], 2],
           [2, 2]                                                                 ]

     E€   [     0,                       0,                       0,             0,
                0,                       0,                       0,             0,
                0,                       0,                       0,             0,
                1                                                                 ]

       S  1

আমার সাথে একই ধারণা ছিল ;Z, যদিও জেলির চেয়ে
জাপটে

এখন আমি দেখতে পাচ্ছি কেন আপনি সত্যবাদিতা / মিথ্যা মান সম্পর্কে জিজ্ঞাসা করেছিলেন । জেলির এই সংজ্ঞাটি ম্যাটল্যাব দ্বারা অনুপ্রাণিত হয়েছিল (বা এমএটিএল) তাই না?
স্টিভি গ্রিফিন

না, জেলি পাইথনের কন্ডিশনগুলি অভ্যন্তরীণভাবে ব্যবহার করে। যদিও Ȧপরমাণুটি এমএটিএল দ্বারা অনুপ্রাণিত হয়েছিল।
ডেনিস

ওহ ভাল আমার Eপথটি বেশ দীর্ঘ ছিল> << ঠিক, বিল্টইনটি এটি করার উপায় ছিল। চমৎকার :)
হাইপারনিউটারিনো

3

পাইথন 2 , 60 92 91 বাইট

def f(n,x):x=[map(str,i)for i in x];print any(`[i]*n`[1:-1]in`x+zip(*x)`for i in sum(x,[]))

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

গণনার পরিবর্তে, আকারের একটি তালিকা n(ম্যাট্রিক্সের প্রতিটি উপাদানের জন্য) তৈরি করা হয় এবং এটি ম্যাট্রিক্সে রয়েছে কিনা তা পরীক্ষা করা হয়

স্ট্রিং ছাড়াই, 94 বাইট

lambda n,x:any((e,)*n==l[i:i+n]for l in x+zip(*x)for i in range(len(l)-n+1)for e in sum(x,()))

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


আমি মনে করি এটি একাধিক সংখ্যা সহ মিথ্যা ধনাত্মকতা দিতে পারে।
xnor

সেখানে @xnor, স্থির
রোড

3

অষ্টক , 59 বাইট

@(A,N)any({[l,v]=runlength(blkdiag(A,A')(:)),l(v>=0)}{2}>=N)

এটি অনলাইন চেষ্টা করুন!বা সমস্ত পরীক্ষার কেস যাচাই করুন

এটি আমার এমএটিএল উত্তরের মতো একই পদ্ধতির ব্যবহার করে (এখানে ব্যাখ্যা দেখুন)।


1
blkdiag(A,A')। খুব সুন্দর!
rahnema1

3

জাপট , 18 15 14 বাইট

cUy)d_ò¦ d_ʨV

এটা পরীক্ষা করো

  • ETH প্রোডাকশনগুলির সাহায্যে 3 বাইট সংরক্ষণ করা হয়েছে।

ব্যাখ্যা

    :Implicit input of 2D array U and integer V
c   :Append to U...
Uy  :U transposed.
d   :Check if any of the elements (sub-arrays) in U return true when...
_   :Passed through a function that...
ò   :Partitions the current element by...
¦   :Checking for inequality.
d   :Check if any of the partitions return true when...
_   :Passed through a function that checks if...
Ê   :The length of the current element...
¨V  :Is greater than or equal to V.
    :Implicit output of resulting boolean.

1
ওহ বাহ, আমার পোস্ট করার আগে আমি এটি দেখিনি। আপনি এর সাথে 2 বাইট cUy)®ò¦ d_l ¨V\ndএবং অন্যটি দিয়ে সংরক্ষণ cUy)d_ò¦ d_l ¨Vকরতে পারেন এবং তারপরে আপনি কার্যত আমার (মুছে ফেলা) সমাধানটি নিতে পারেন।
ETH প্রোডাকশনগুলি

হা হা; দুর্দান্ত মন ..., @ETH প্রোডাকশন :) আমি অবাক হয়েছি আজ ওবারাকন আমাকে সারাদিন মারধর করার পরে আমি দ্রুততম আঙুল দিয়েছিলাম! এই টিপসগুলির জন্য ধন্যবাদ, ইতিমধ্যে একটি স্পট করেছে তবে অন্যটি এখনও পায় নি।
শেগি

2

সিজেম , 16 বাইট

q~_z+N*e`:e>0=>!

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

ব্যাখ্যা

q~    e# Read and eval input.
_z+   e# Append the matrix's transpose to itself.
N*    e# Join with linefeeds to flatten without causing runs across rows.
e`    e# Run-length encode.
:e>   e# Get maximum run (primarily sorted by length).
0=    e# Get its length.
>!    e# Check that it's not greater than the required maximum.

আমি সর্বদা ভাবতাম যে সিজেমের আরএলই কেন রান-লেংথ দেয়, তারপরে মান দেয়। ভাল, এটি এখানে দরকারী হিসাবে দেখা যাচ্ছে :-)
লুইস মেন্ডো

@ লুইসমেন্দো আমার ধারণা, কারণ আপনি এটি "3 এ, 5 বি এর, 2 গ এর" বলবেন। আমি আসলে এই আদেশটি বেশিরভাগ ক্ষেত্রে দরকারী বলে মনে করি।
মার্টিন ইন্ডার

আসলে, অষ্টাভের runlengthফাংশনটিও সেই ক্রমে আউটপুট দেয়। তবে কোনওভাবে আমি অর্ডারটিকে value, lengthআরও প্রাকৃতিকভাবে অনুভব করি
লুইস মেন্ডো

2

পাইথন 3 , 129 128 125 120 104 101 বাইট

@ জাচারি টি, @ স্টিভি গ্রিফিন, @ মিঃ কে প্রচুর ধন্যবাদ এটিকে অনেক উন্নত করার জন্য এক্সকোডার, @ রড, @ টোটালিহিউম্যান।

def f(n,m):
 a=b=c=0;m+=zip(*m)
 for r in m:
  for i in r:b,a=[1,b+1][a==i],i;c=max(c,b)
 return n<=c

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


আপনার 1এবং এর মধ্যে কোনও স্থানের দরকার নেই if
জাকারিয়া

প্রতিস্থাপন চার বাইট সংরক্ষণ a=b;b=0;c=0সঙ্গেa=b=c=0
জনাব Xcoder

(আমি নিশ্চিত নই) তবে আমি মনে করি আপনি চতুর্থ লাইনের m+zip(*m)পরিবর্তে ব্যবহার করতে পারবেন mএবং পুরোপুরি প্রথম লাইনটি ফেলে n<=max()দিয়ে শেষ লাইনে চলে n<=c
রড


b=b+1ব্যবহারের পরিবর্তে b+=1... আহ, নিনজা @ স্টিওগ্রিফিন দ্বারা করেছেন
মিঃ এক্সকোডার

2

05 এ বি 1 ই , 16 14 12 বাইট

Døìvyγ€gM²‹_

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

Dø           # Duplicate the input and transpose one copy
  ì          # Combine the rows of both matrixes into one array
   vy        #   For each row...
     γ       #     Break into chunks of the same element
      €g     #     get the length of each chunk
        M    #     Get the largest length so far
         ²‹_ #     Check if that is equal to or longer than required

1
পছন্দ করুন এই উদাহরণটির 0দ্বিতীয় সারিতে পরপর 3 টি রয়েছে , সুতরাং এটি সত্য হওয়া উচিত।
রিলে

@ ম্যাজিকঅ্যাক্টোপাস ইউরান আপনি যদি এই রান (টিআইও) ভেঙে দেন তবে এটি মিথ্যা প্রত্যাবর্তন করবে।
রিলে

তৃতীয় কমান্ড ট্রান্সপোজড সারিগুলিকে আসল সারিগুলিতে একত্রিত করে না?
ম্যাজিক অক্টোপাস উরান

এছাড়াও, আমি ভেবেছিলাম যখন 3 আছে তখনই এটি সত্য হওয়া উচিত [3,3,3]। আমি সেই ক্ষেত্রে চ্যালেঞ্জটি ভুলভাবে পড়েছি, তাই আমি মনে করি আমি এখানে ভুল।
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিকঅ্যাক্টোপাসউর্ন প্রথম 3 টি কমান্ড একটি অ্যারে তৈরি করবে যাতে প্রতিটি সারি এবং প্রতিটি কলাম পৃথক উপাদান হিসাবে থাকবে।
রিলে

1

জেলি , 18 বাইট

ŒrFUm2<⁴$ÐḟL
ZÇo³Ç

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

ŒrFUm2<⁴$ÐḟL  Helper Link
Œr            Run-length encode
  F           Flatten the whole thing, giving the numbers in the odd indices and the lengths of the runs in the even indices
   U          Reverse
    m2        Take every other element (thus only keeping the run lengths)
         Ðḟ   Discard the elements that are
      <⁴$                                   less than the required run length
           L  And find the length
ZÇo³Ç         Main Link
Z             Zip the matrix
 Ç            Call the helper link on it
   ³Ç         Call the helper link on the original matrix
  o           Are either of these truthy?

রিটার্নস 0মিথ্যা এবং truthy জন্য একটি নন-জিরো পূর্ণসংখ্যা জন্য।

হ্যাঁ, এটা খারাপ। এবং খুব দীর্ঘ। গল্ফিং টিপস প্রশংসা করা হবে :)


1

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

ম্যাট্রিক্স mএবং nকারিটিং সিনট্যাক্সে সংঘটিত সংখ্যার প্রত্যাশিত সংখ্যা নেয় (m)(n)। একটি বুলিয়ান ফেরত দেয়।

m=>n=>[',',`(.\\d+?){${m[0].length-1}}.`].some(s=>m.join`|`.match(`(\\b\\d+)(${s}\\1){${n-1}}\\b`))

কিভাবে?

এই কোডটি বিশেষভাবে সংক্ষিপ্ত নয়, তবে আমি নিয়মিত অভিব্যক্তির উপর ভিত্তি করে বিশুদ্ধরূপে একটি পদ্ধতির চেষ্টা করতে চেয়েছিলাম।

ম্যাট্রিক্সকে একটি স্ট্রিতে রূপান্তর

আমরা ব্যাবহার করি m.join('|') 2D-অ্যারেটিকে স্ট্রিংয়ে রূপান্তর করতে । এটি প্রথমে ম্যাট্রিক্স সারিগুলিকে কমা-বিচ্ছিন্ন স্ট্রিংগুলিতে জড়িত জোর করে তোলে causes

উদাহরণস্বরূপ, এই ইনপুট:

[
  [ 1, 2, 3 ],
  [ 4, 5, 6 ]
]

রূপান্তরিত হবে:

"1,2,3|4,5,6"

সারি মিলছে

আমরা একের পর এক ক্রমাগত ঘটনাগুলির সন্ধান করি:

/(\b\d+)(,\1){n-1}\b/

এটি মিলছে:

  • \b একটি শব্দ সীমানা
  • \d+ একটি সংখ্যা অনুসরণ করে
  • (){n-1}n-1 বার অনুসরণ করেছে:
    • , একটি কমা
    • \1 আমাদের রেফারেন্সের পরে: একটি শব্দ সীমানা + প্রথম সংখ্যা
  • \b একটি শব্দ সীমানা অনুসরণ করে

কলাম মিলছে

আমরা এর সাথে একটি কলামে একটানা ঘটনা সন্ধান করি:

/(\b\d+)((.\d+?){L-1}.\1){n-1}\b/

Lএকটি সারির দৈর্ঘ্য কোথায়

এটি মিলছে:

  • \b একটি শব্দ সীমানা
  • \d+ একটি সংখ্যা অনুসরণ করে
  • (){n-1}n-1 বার অনুসরণ করেছে:
    • (){L-1} এল -১ বার:
      • . যে কোনও চরিত্র (কার্যত: কমা বা পাইপ)
      • \d+? একটি সংখ্যা অনুসরণ করে (এটি অবশ্যই অ-লোভী হতে হবে)
    • . যে কোনও অক্ষর অনুসরণ করে (আবার: হয় কমা বা পাইপ)
    • \1 আমাদের রেফারেন্সের পরে: একটি শব্দ সীমানা + প্রথম সংখ্যা
  • \b একটি শব্দ সীমানা অনুসরণ করে

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



0

ক্লোজার, 77 বাইট

#((set(for[I[%(apply map vector %)]i I p(partition %2 1 i)](count(set p))))1)

pদৈর্ঘ্যের টানা সমস্ত পার্টিশন তৈরি করে N(প্রতীক)%2 ) তৈরি করে এবং এটির কতগুলি স্বতন্ত্র মান রয়েছে তা গণনা করে। তারপরে এটি এই দৈর্ঘ্যের সেট গঠন করে এবং 1যদি সেট থেকে nilঅন্যথায় পাওয়া যায় তবে ফিরে আসে । forকনস্ট্রাক্ট এই জন্য নিখুঁত ফিট, আমার আসল প্রয়াস ব্যবহার করা হয়েছে flatten, concatবা যে সংক্ষিপ্ত কিছু।

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