চ্যালেঞ্জগুলির একটি অ্যারে # 1: বিকল্প অ্যারে


41

বিকল্প অ্যারে

একটি বিকল্প অ্যারে হ'ল যে কোনও দৈর্ঘ্যের একটি তালিকা যেখানে দুটি (অগত্যা পৃথক নয়) মানগুলি পরিবর্তিত হয়। এর অর্থ হল, সমস্ত সম-সূচকযুক্ত আইটেম সমান এবং সমস্ত বিজোড়-সূচকযুক্ত আইটেম সমান।

আপনার কাজটি এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হয় যা ইতিবাচক পূর্ণসংখ্যার তালিকা দেওয়া হয়, truthyযদি এটি বিকল্প হয় এবং falsyঅন্যথায় আউটপুট / রিটার্ন দেয় ।

এটি , তাই সংক্ষিপ্ততম কোডটি (বাইটে) জেতে!

এজ কেস:

[]      ->  True
[1]     ->  True
[1,1]   ->  True
[1,2,1] ->  True

অন্যান্য পরীক্ষার মামলা:

[1,2,1,2]      -> True
[3,4,3]        -> True
[10,5,10,5,10] -> True
[10,11]        -> True
[9,9,9,9,9]    -> True

[5,4,3,5,4,3]   -> False
[3,2,1,2,1,2]   -> False
[1,2,1,2,1,1,2] -> False
[2,2,3,3]       -> False
[2,3,3,2]       -> False

উদাহরণ

পাইথন 3 এ লেখা (গল্ফড নয়) এর বিরুদ্ধে আপনি নিজের সমাধানটি পরীক্ষা করতে পারেন এমন একটি উদাহরণ এখানে:

def is_alternating(array):
    for i in range(len(array)):
        if array[i] != array[i%2]:
            return False
    return True

অ্যারের উপাদানগুলির সম্ভাব্য মানগুলি কী কী?
রবার্ট হিকম্যান 21

@ রবার্টহিকম্যান আপনার ভাষার মানক আকারের মধ্যে ইতিবাচক পূর্ণসংখ্যার একটি তালিকা
ফ্লিপট্যাক

ওহ আমি এখন প্রশ্নে এটি দেখতে। উফ এবং ধন্যবাদ
রবার্ট হিকম্যান 21

উত্তর:


27

জেলি , 4 বাইট

ḣ2ṁ⁼

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

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

ḣ2ṁ⁼  Main link. Argument: A (array)

ḣ2    Head 2; truncate A after its second element. If A has two or less elements,
      this returns A itself.
  ṁ   Mold; cyclically repeat the elements of the previous result to create an
      array that has the same shape/length as A.
   ⁼  Test the result for equality with A.

7
অভিশাপ। এবং 2অন্যান্য সংখ্যার সাথে সাথে পরিবর্তন করা অবিলম্বে চ্যালেঞ্জকে সাধারণীকরণ করে!
গ্রেগ মার্টিন

3 বাইট , কিন্তু Ɲচ্যালেঞ্জ পোস্ট করার সময় উপস্থিত ছিল না।
কেয়ার্ড কোইনরিঙ্গিংহিং

14

ব্রেনফাক, 34 বাইট

,>,>+>,
[
  [<+<<->>>-]
  +<[-<<]
  >[>]
  ,
]
<.

অ্যারেটিকে একটি স্ট্রিংয়ে বাইট মান হিসাবে নিয়ে যায় এবং \x00মিথ্যা এবং \x01সত্যের আউটপুট দেয় ।

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

এটি কাঠামো বজায় রাখে

a b 1 c

টেপটিতে যেখানে cবর্তমান অক্ষরটি bপূর্বের অক্ষর এবং aপূর্ববর্তী অক্ষরটি যতক্ষণ না অ্যারে পর্যায়ক্রমে চলছে। একটি মেলেনি পাওয়া যায়, তাহলে পয়েন্টার বাম যেমন চলে যায় যে a, bএবং 1পতাকা সব শূন্য হই, এবং যতক্ষণ সমস্ত ইনপুট ক্ষয়প্রাপ্ত হয় এই পরিস্থিতি অব্যাহত থাকবে।


13

আর, 24 23 বাইট

all((a=scan())==a[1:2])

STDIN এ কোনও ভেক্টর পড়ে, সেই ভেক্টরের প্রথম দুটি উপাদান নেয় এবং সমতা পরীক্ষা করে। দৈর্ঘ্য a[1:2]এবং একটি না মিলে, আর a[1:2]এর দৈর্ঘ্যের সাথে মেলে আর লুপ হবে । এটি এটি সম্পর্কে একটি সতর্কতা দেবে, তবে এটি কার্যকর হবে।

আশ্চর্যজনকভাবে এটি খালি ইনপুটটির জন্যও কাজ করে, কেন তা নিশ্চিত নয় তবে আমি এটি দিয়ে রোল করব।

@ মিকিটি ধন্যবাদ 1 বাইট সংরক্ষণ করা


আপনি নিজের সাথে একটি বাইট সংরক্ষণ করতে পারেনall((a=scan())==a[1:2])
মিকিটি

ভেক্টর, তালিকা বা কেবল একক সংখ্যা হিসাবে আপনি কীভাবে ডেটা ইনপুট করবেন? আমি কনসোলে একক সংখ্যা টাইপ করার চেষ্টা করেছি তবে আমি এই সতর্কতাটি পেয়েছি: "সতর্কতা বার্তা: স্ক্যান () == এ [1: 2]: দীর্ঘ অবজেক্ট দৈর্ঘ্য সংক্ষিপ্ত অবজেক্ট দৈর্ঘ্যের একাধিক নয়"। যদিও এটি কাজ করে।
স্ক্যান

প্রকৃতপক্ষে একক সংখ্যা টাইপ করে। ইনপুট দৈর্ঘ্য বিজোড় হলে এটি একটি সতর্কতা ছুঁড়ে দেবে, তবে এটি এখনও সঠিক আউটপুট দেবে।
জেএডি

10

এমএটিএল , 7 6 বাইট

2YCs&=

পরিবর্তিত অ্যারেগুলির জন্য এটিগুলির একটি খালি খালি ম্যাট্রিক্স আউটপুট দেয় যা সত্য। অ-বিকল্প বিহীন অ্যারেগুলির জন্য ম্যাট্রিক্সে কমপক্ষে একটি শূন্য থাকে এবং এটি মিথ্যা হয়ে থাকে ( এখানে দেখুন ))

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

ব্যাখ্যা

আসুন [1 2 1 2]উদাহরণ ইনপুট হিসাবে নেওয়া যাক ।

2YC   % Implicit input. Build matrix whose columns are overlapping blocks of 
      % length 2. If input has size less than 2 this gives an empty array
      % STACK: [1 2 1;
                2 1 2]
s     % Sum of each column. For an empty array this gives 0
      % STACK: [3 3 3]
&=    % Matrix of all pairwise equality comparisons. Implicit display
      % STACK: [1 1 1;
                1 1 1;
                1 1 1]

2
চমৎকার অ্যালগরিদম! এটি একটি জেলি উত্তর দিতে হবে।
ডেনিস

@ ডেনিস ধন্যবাদ! এটি আংশিকভাবে আপনার জেলি পদ্ধতির দ্বারা অনুপ্রাণিত হয়েছিল
লুইস মেন্ডো

9

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

a=>!a.some((v,i)=>a[i&1]-v)

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


8

রেটিনা , 25 বাইট

M`\b(\d+),\d+,(?!\1\b)
^0

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

বিকল্প মানগুলির সাথে একটি ইনপুট মেলানোর পরিবর্তে (যা কিছুটা রেজেক্সে বিরক্তিকর প্রান্ত প্রভাবের দিকে নিয়ে যায়) এর পরিবর্তে, আমি বৈধ নয় এমন ইনপুটগুলি মিলে যাচ্ছি এবং তারপরে ফলাফলটিকে তুচ্ছ করে দেব ।

একটি অবৈধ ইনপুটটির সাথে মিলে যাওয়ার সুবিধাটি হ'ল এটি একটি সম্পত্তি স্থানীয়ভাবে যাচাই করা যেতে পারে এবং এটি খালি বা সংক্ষিপ্ত ইনপুটটি বিশেষভাবে চিকিত্সা করার দরকার নেই: কোনও ইনপুট অবৈধ যদি এটিতে দুটি অবস্থান পৃথক পৃথক মান থাকে।

সুতরাং প্রথম পর্যায়ে \b(\d+),\d+,(?!\1\b)কোনটি মিলবে এবং একটি মান ক্যাপচার করে তার মিলগুলির সংখ্যা গণনা করে তারপরের পরবর্তী মানটির সাথে মেলে এবং তারপরে দৃser়ভাবে দাবি করে যে তৃতীয় মানটি ক্রম অনুসারে আলাদা। এটি বৈধ ইনপুটগুলির জন্য শূন্য এবং অবৈধ মানের জন্য ধনাত্মক কিছু দেয়।

দ্বিতীয় পর্যায়ের কেবল ম্যাচ সংখ্যা, মোট ছাত্র এর ^0যা 1যদি প্রথম পর্যায়ের ফিরে 0এবং 1অন্যথায়।


7

গণিত, 29 বাইট

#=={}||Equal@@(Most@#+Rest@#)&

লুইস মেন্ডোর এমএটিএল অ্যালগরিদমের একটি বন্দর। নামহীন ফাংশন সংখ্যাগুলির একটি তালিকা (বা আরও সাধারণ জিনিসগুলি) নেওয়া এবং ফিরে আসা Trueবা False। একটানা উপাদানগুলির যোগফলগুলি সমস্ত সমান কিনা তা পরীক্ষা করে। দুর্ভাগ্যক্রমে Mostএবং Restখালি তালিকায় দম বন্ধ, যাতে পৃথকভাবে পরীক্ষা করতে হবে।

গণিত, 33 বাইট

Differences[#,1,2]~MatchQ~{0...}&

নামহীন ফাংশন সংখ্যাগুলির একটি তালিকা (বা আরও সাধারণ জিনিসগুলি) নেওয়া এবং ফিরে আসা Trueবা False। ফাংশনটি Differences[#,1,2]পার্থক্যগুলি গ্রহণ করে, একটানা জোড়া সংখ্যার নয়, তবে দু'একটি দূরত্বে জোড়া জোড়া পূর্ণসংখ্যা। তারপরে আমরা কেবল যাচাই করেছিলাম যে ফলাফলের তালিকার এতে শূন্য ছাড়া অন্য কিছু নেই।

একটি বোনাস হিসাবে, আরও একটি বাইট জন্য (পরিবর্তন 2করার জন্য #2), আমরা একটি ফাংশন পেতে যে ইনপুট পূর্ণসংখ্যার এবং অন্য পূর্ণসংখ্যা ইতিবাচক একটি তালিকা #2, এবং কিনা তা পরীক্ষা ইনপুট তালিকা interleaving ফল #2পর্যায়ক্রমে একে অপরের সাথে ধ্রুবক সিকোয়েন্স। উদাহরণ স্বরূপ,

Differences[#,1,#2]~MatchQ~{0...}&[{1,2,3,4,5,1,2,3,4,5,1,2},5]

মূল্যায়ন True


7

হাস্কেল, 27 26 বাইট

and.(zipWith(==)=<<drop 2)

এটি একটি বেনাম ফাংশনকে মূল্যায়ন করে যা চ্যালেঞ্জ সমাধান করে। ধারণাটি হ'ল তালিকা থেকে প্রথম দুটি সংখ্যা বাদ দেওয়া, সাম্য ব্যবহার করে মূল তালিকার সাথে জিপ করা, এবং ফলাফলটি কেবলমাত্র Trueগুলি রয়েছে কিনা তা পরীক্ষা করে দেখুন । এটি অনলাইন চেষ্টা করুন!

নিমিকে ধন্যবাদ 1 বাইটের জন্য!



1
খুশী হলাম। and.(zipWith(==)=<<drop 2)একটি বাইট সংরক্ষণ করে।
নিমি

7

রেটিনা ,39 32 28 বাইট

^(\d*)((,\d+)(,\1(\3|$))*)?$

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

মার্টিনের জন্য 7 বাইট সংরক্ষণ করা ! আরেকটি 3 ধন্যবাদ সংরক্ষিত কবি ! এবং ক্রিটিক্সির কাছে আরও একটির জন্য একটি ধারণার জন্য।

আমরা বৈকল্পিকভাবে এমন একটি সংখ্যার সাথে মেলে যা পুরো ইনপুট, কোনও সংখ্যার জোড়, বা কোনও জোড় সংখ্যার পরে একই জোড়ায় যেকোন সংখ্যক বার এবং allyচ্ছিকভাবে দ্বিতীয় নম্বরটি একেবারে শেষে অন্তর্ভুক্ত করে না। ইনপুটটি অকেজো থাকলে 2 বাইট সংরক্ষণ করতে পারে।


1
অন্য ^(\d+)?(.\d+)?(.\1\2)*(.\1)?$29 বাইট বিকল্প। এটি মেলে না,1,,1
কৃতিক্সিত লিথোস

1
@ কোবি দুর্দান্ত ধারণা, ধন্যবাদ! আমি আরও 1 টি বাঁচাতে কৃত্তিকার কয়েকটি উত্তর (দ্বিতীয় ক্যাপচার গ্রুপে কমা যোগ করা) ব্যবহার করেছি!
FryAmTheEggman

6

পাইথ, 9 বাইট

q<*<Q2lQl

ব্যাখ্যা

q<*<Q2lQlQQ   Implicitly add enough Qs to make the code run

   <Q2        Take the first two elements of the input
  *   lQ      Repeat those len(input) times
 <      lQ    Take the first len(input) elements
q         Q   Check if those are equal to the input

আপনি ব্যাখ্যাটিতে কোডটি আপডেট করতে চাইতে পারেন (এটি ভিন্ন এটিএম)
ফ্লিপট্যাক

@ Flp.Tkc পাইথ কোডটিতে স্পষ্টভাবে যুক্ত Qকরে। কী হচ্ছে তা পরিষ্কার করে তুলতে আমি তাদের ব্যাখ্যাটিতে যুক্ত করেছি, তবে তারা কোডটিতে আসলে নেই।
মনমোনিক


5

এপিএল, 7 বাইট

⊢≡⍴⍴2⍴⊢

ব্যাখ্যা:

  • 2⍴⊢: ইনপুট অ্যারেটিকে 2 দিয়ে পুনরায় আকার দিন
  • ⍴⍴: পুনরাবৃত্তি উপাদানগুলির ইনপুটটির মূল আকার দ্বারা পুনরায় আকার দিন
  • ⊢≡: দেখুন যে এর ফলাফলটি মূল ইনপুট সমান is

পরীক্ষার কেস:

      true←(1 2 1 2)(10 5 10 5 10)(10 11)(9 9 9 9 9)
      false←(5 4 3 5 4 3)(3 2 1 2 1 2)(1 2 1 2 1 1 2)(2 2 3 3)(2 3 3 2)
      ( ⊢≡⍴⍴2⍴⊢ ) ¨ true
1 1 1 1
      ( ⊢≡⍴⍴2⍴⊢ ) ¨ false
0 0 0 0 0

5

জাভা 8, 63 বাইট

i->{int r=0,x=1;for(;++x<i.length;)r|=i[x]-i[x-2];return r==0;}

এটি a এর জন্য ল্যাম্বডা এক্সপ্রেশন Predicate< int[ ] >

ব্যাখ্যা: ফলাফলটি 0 এ আরম্ভ করুন প্রতিটি উপাদানের জন্য, বিটাইজ করুন বা ফলাফলটি বর্তমান উপাদান এবং 2 উপাদান সূচকগুলির মধ্যে পার্থক্য সহ আগে ইঙ্গিত দেয়। আসতে trueযদি ফলাফলের 0. সমান অন্যথায় আসতেfalse


5

পার্ল 6 ,  49 43  42 বাইট

{!grep {![==] @_},roundrobin |.rotor: 2,:partial}

চেষ্টা করে দেখুন

{!.grep: ->\a,\b=$_[1] {sum .[0,1]Z!==a,b}}

চেষ্টা করে দেখুন

{!.grep: ->\a,\b=.[1] {sum .[0,1]Z!==a,b}}

চেষ্টা করে দেখুন

সম্প্রসারিত:

{
  !              # invert

  .grep:         # find any mismatches

  ->
    \a,
    \b = .[1]   # optional second parameter with default of second value from input
  {
    sum          # count up the values that don't match

    .[ 0, 1 ]    # the first two values from the input
    Z[![==]]     # zip not equal
    a, b         # the current two values under test.
  }
}

$_[1]হিসাবে এক বাইট খাটো হতে পারে .[1]। অভ্যন্তরীণ ল্যাম্বডা শরীরটি এক বাইট হিসাবে খাটো হতে পারে {.[0]!=a||.[1]!=b}
18

1
@ এসএমএলস আমি জানি না কেন আমি এটি দেখিনি .[1]। এছাড়াও !=কাজ বলে মনে হচ্ছে না যদি এটি একটি স্থান দ্বারা অনুসরণ করা হয় না। আমি মনে করি এরকম কিছু $_!=3পার্স করা হচ্ছে যেন এটি লিখিত ছিল!( $_ = 3 )
ব্র্যাড গিলবার্ট বি 2 গিল

আহ। দেখে মনে হচ্ছে এটি একটি রাকুডো বাগ
2'2 এ স্মিল


3

জে, 8 বাইট

-:$$2&{.

ব্যাখ্যা

-:$$2&{.  input: (y)
    2&{.  the first two elements of y
   $      shaped like
  $       the shape of y
-:        and check if they match

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

   f =: -:$$2&{.
   ]true =: '' ; 1 ; 1 1 ; 1 2 1 ; 1 2 1 2 ; 10 5 10 5 10 ; 10 11 ; 9 9 9 9 9
++-+---+-----+-------+------------+-----+---------+
||1|1 1|1 2 1|1 2 1 2|10 5 10 5 10|10 11|9 9 9 9 9|
++-+---+-----+-------+------------+-----+---------+
   f each true
+-+-+-+-+-+-+-+-+
|1|1|1|1|1|1|1|1|
+-+-+-+-+-+-+-+-+
   ]false =: 5 4 3 5 4 3 ; 3 2 1 2 1 2 ; 1 2 1 2 1 1 2 ; 2 2 3 3 ; 2 3 3 2
+-----------+-----------+-------------+-------+-------+
|5 4 3 5 4 3|3 2 1 2 1 2|1 2 1 2 1 1 2|2 2 3 3|2 3 3 2|
+-----------+-----------+-------------+-------+-------+
   f each false
+-+-+-+-+-+
|0|0|0|0|0|
+-+-+-+-+-+

আপনার {.সাথে টেক উইথ $শেপ প্রতিস্থাপন করতে সক্ষম হওয়া উচিত ।
অ্যাডম

3

হাস্কেল , 33 32 বাইট

f(a:x@(_:b:_))=a==b&&f x
f a=1<3

এটি অনলাইন চেষ্টা করুন! বা টেস্টকেসগুলি যাচাই করুন। -1 বাইট জাগর্বকে ধন্যবাদ।


@ ডেনিস ফাংশনটি কাজ করে []তবে কোনও কারণে জিএইচসি সঠিক ধরণের জন্য অনুমান করতে পারে না []। এটি যদি অন্য পরীক্ষার ক্ষেত্রে এক সাথে পরীক্ষিত হয় তবে এটি কাজ করে, দেখুন টেস্টকেসগুলি যাচাই করুন।
লাইকনি

ঠিক আছে, আমি হাস্কেলকে এতো ভাল জানি না।
ডেনিস

এর সাথে বাইট সংরক্ষণ করুনf(a:x@(_:b:_))=a==b&&f x
Zgarb

3

বাশ, 56 54 38 বাইট

[ -z $3 ]||((($1==$3))&&(shift;$0 $*))

এটিকে স্ক্রিপ্ট হিসাবে সংরক্ষণ করুন এবং সংখ্যাগুলির তালিকাটি আর্গুমেন্ট হিসাবে পাস করুন (একটি এন-এলিমেন্ট তালিকার জন্য, আপনি এন আর্গুমেন্ট পাস করবেন)। আউটপুটটি হ'ল প্রস্থান কোড: 0 (সত্যের জন্য) যদি তালিকাটি বিকল্প হয় এবং অন্যথায় 1 (মিথ্যা জন্য)।

(প্রস্থান কোডে রিটার্নিং আউটপুট পিপিসিজি মান I / O পদ্ধতিতে অনুমোদিত))

এটি পুনরাবৃত্তভাবে কাজ করে:

  • তালিকায় যদি 3 টিরও কম উপাদান থাকে, তবে রিটার্ন কোড 0 দিয়ে প্রস্থান করুন;
  • অন্যথায় যদি 1 ম উপাদান! = 3 য় উপাদান, তবে রিটার্ন কোড 1 সহ প্রস্থান করুন;
  • অন্যথায় প্রথম উপাদানটি সরিয়ে তালিকায় পুনরাবৃত্তভাবে প্রোগ্রামটি চালান।

1

পাইথন 2.7, 38 বাইট

>> i=lambda a:(a[:2]*len(a))[0:len(a)]==a

পরীক্ষার কেস:

>> print i([1,2,1,2])
>> True
>> print i([10,5,10,5,10]
>> True
>> print i([5,4,3,5,4,3])
>> False
>> print i([3,2,1,2,1,2])
>> False

2
আমি এটিকে এই উত্তরের একটি সদৃশ বলব ।
mbomb007

1

পাইকে, 6 বাইট, নন-কেপটিং

2<Ql{q

এখানে চেষ্টা করুন!

2<     -   inp[:2]
    {  -  reshape(^, v)
  Ql   -   len(inp)
     q - ^ == inp

পুনরায় আকার নোডকে একটি স্ট্রিংয়ের পাশাপাশি একটি তালিকা নেওয়ার অনুমতি দিন


1

শেনজেন আইও (এসেমব্লার), 83 76 বাইট, নন-কেপটিং

শেনজেন আইও একটি ধাঁধা গেম যেখানে আপনি একটি বিশেষ এসেমব্লার-ইশ ভাষায় কোড কোড করতে পারেন।

দুর্ভাগ্যক্রমে, আপনি কেবল ইনপুট বা আউটপুট হিসাবে -999 এবং 999 এর মধ্যে পূর্ণসংখ্যা ব্যবহার করতে পারেন এবং অ্যারেটি শেষ হয়েছে কিনা তা বলার উপায় নেই। সুতরাং আমি ধরে নিয়েছি যে অ্যারেটি একটি রমে রচিত হয়েছিল যা শেষ সেলটি পড়ার পরে প্রায় মোড়ানো হয়েছিল। এর অর্থ হ'ল কেবল অ্যারেগুলিও ব্যবহার করা যেতে পারে, এটি অকার্যকর হওয়ার কারণ।

কোড:

@mov x0 dat
@mov x0 acc
teq x0 dat
+teq x0 acc
b:
+mov 1 p1
-mov 0 p1
-jmp b

ব্যাখ্যা:

  # calling for x0 will cause rom to move 1 cell forward

 @ mov x0 dat # Moves value to variable dat (only run once)
 @ mov x0 acc # Moves rom position forward and moves x0 to acc           
  teq x0 dat  # See if dat equals x0  
+ teq x0 acc  # If last expression was true, see x0 equals acc
b:            # Label for jumps (GOTO)
+ mov 1 p1    # Set output (p1) to 1 (same case as previous line)
- mov 0 p1    # if any expression was false, set output to 0 
- jmp b       # jump to b: (same case as prev line)

দুঃখিত এর মধ্যে যদি কোনও বিভ্রান্ত হয় তবে এটি আমার প্রথম কোড-গল্ফ উত্তর answer

সম্পাদনা: রান-ওয়ান কোড দ্বারা লুপগুলি প্রতিস্থাপন করে 7 বাইট সরানো হয়েছে


পিপিসিজিতে আপনাকে স্বাগতম!
ফ্লিপট্যাক


1

রুবি, 131 119 বাইট

a=->x{!(x.values_at(*x.each_index.select{|i|i.even?}).uniq)[1]&!(x.values_at(*x.each_index.select{|i|i.odd?}).uniq[1])}

ল্যামডা aএকটি অ্যারের আশা xএবং সত্য ফেরৎ যদি 0 বা 1 অনন্য বিজোড় সূচীবদ্ধ উপাদানের জন্য এবং 0 বা অ্যারের মধ্যে এমনকি ইন্ডেক্স উপাদানের জন্য 1 অনন্য মান মান।

উল্লেখযোগ্য বাইট-সেফার

  • ল্যাম্বডা ব্যবহার def
  • !arr[1] বনাম arr.length < 2
  • & বনাম &&

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

p a[[]]
p a[[1]]
p a[[1,1]]
p a[[1,2,1]]
p a[[1,2,1,2]]
p a[[3,4,3]]
p a[[10,5,10,5,10]]
p a[[10,11]]
p a[[9,9,9,9,9]]

#false
p a[[5,4,3,5,4,3]]==false
p a[[3,2,1,2,1,2]]==false
p a[[1,2,1,2,1,1,2]]==false
p a[[2,2,3,3]]==false
p a[[2,3,3,2]]==false


1

সি #, 54 বাইট

using System.Linq;p=>!p.Where((v,i)=>v!=p[i%2]).Any();

সন্ধ্যার জন্য প্রথম মানের এবং প্রতিকূলতার জন্য ২ য় মানের সাথে মেলে না এমন মানগুলি দেখানোর জন্য ফিল্টার অ্যারে। যদি কোনও ফলাফল না পাওয়া যায় তবে সত্যে ফিরে আসুন।



0

সি #, 66 বাইট

a=>{int r=1,i=0;for(;i<a.Length;)if(a[i]!=a[i++%2])r=0;return r;};

বেনামে ফাংশন যা একটি পূর্ণসংখ্যা অ্যারে গ্রহণ করে এবং অ্যারেটি যদি বিকল্প হয় এবং অন্যথায় 0 হয় তবে ফিরে আসে।

অলোভিত ফাংশন এবং পরীক্ষার কেস সহ সম্পূর্ণ প্রোগ্রাম:

using System;

public class Program
{
    public static void Main()
    {
        Func<int[], int> f =
        a =>
        {
            int r = 1,  // return value. 1 is true, by default
                i = 0;  // iterator
            for ( ; i<a.Length ; )  // for each array element
                if ( a[i] != a[i++%2] ) // if the even (or odd) elements are not the same
                    r = 0;      // a falsy (0) value will be assigned to the return element
            return r;       // returning if the array is alternating or not
        };

        // test cases:
        Console.WriteLine("Edge cases (all TRUE):");
        Console.WriteLine(f(new int[]{}));      //  True
        Console.WriteLine(f(new int[]{1}));     //  True
        Console.WriteLine(f(new int[]{1,1}));   //  True
        Console.WriteLine(f(new int[]{1,2,1})); //  True

        Console.WriteLine("Some other TRUE test cases:");
        Console.WriteLine(f(new int[]{1,2,1,2}));      // True
        Console.WriteLine(f(new int[]{10,5,10,5,10})); // True
        Console.WriteLine(f(new int[]{10,11}));        // True
        Console.WriteLine(f(new int[]{9,9,9,9,9}));    // True

        Console.WriteLine("Some FALSE test cases:");
        Console.WriteLine(f(new int[]{5,4,3,5,4,3}));   // False
        Console.WriteLine(f(new int[]{3,2,1,2,1,2}));   // False
        Console.WriteLine(f(new int[]{1,2,1,2,1,1,2})); // False
        Console.WriteLine(f(new int[]{2,2,3,3}));       // False
        Console.WriteLine(f(new int[]{2,3,3,2}));       // False
    }
}


0

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

(fn[c](let[n #(max(count(set(take-nth 2 %)))1)](=(n c)(n(rest c))1))))

প্রতি 2 য় আইটেমের স্বতন্ত্র গণনা 1 এবং এটি খালি সংগ্রহগুলি বিশেষ কেস হিসাবে পরিচালনা করে তা পরীক্ষা করে। এছাড়াও অনেক ভাগ্য ভিত্তিক reduceএবং চেষ্টা group-byকরেও সেখানে ভাগ্য বেশি নয়।


0

আর: 36 বাইট সহ আরও একটি বিকল্প।

all(rep_len(head(x,2),length(x))==x)

এবং আমি মনে করি আমি একটি আরও সংক্ষিপ্ত সংস্করণ পেয়েছি: 15 বাইট

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