প্রথম 1 হন (কেবল প্রথম সত্যবাদী দিন)


47

ইন্ট্রো

প্রতি বছর ডায়ালগ লিমিটেডের একটি ছাত্র প্রতিযোগিতা অনুষ্ঠিত হয়। সেখানে চ্যালেঞ্জটি হ'ল ভাল এপিএল কোড লেখার । এটি এই বছরের অষ্টম সমস্যার একটি ভাষা অজ্ঞেয় সংস্করণ।

প্রতিযোগিতার মূল লেখকের কাছ থেকে এখানে এই চ্যালেঞ্জটি পোস্ট করার স্পষ্ট অনুমতি আমার কাছে রয়েছে। প্রদত্ত লিঙ্কটি অনুসরণ করে এবং লেখকের সাথে যোগাযোগ করে নির্দ্বিধায় অনুভব করুন ।

সমস্যা

একটি বুলিয়ান * তালিকা দেওয়া, প্রথম সত্যের পরে সমস্ত সত্যকে "অফ" করুন।

সত্য নেই? সমস্যা নেই! কেবল তালিকাটি অবিস্মরণিত ফেরত দিন।

উদাহরণ

[falsy,truthy,falsy,truthy,falsy,falsy,truthy][falsy,truthy,falsy,falsy,falsy,falsy,falsy]

[][]

[falsy,falsy,falsy,falsy][falsy,falsy,falsy,falsy]


* আপনার সমস্ত সত্য অবশ্যই অভিন্ন হতে পারে এবং আপনার সমস্ত মিথ্যা অবশ্যই অভিন্ন হতে পারে। এর মধ্যে আউটপুট অন্তর্ভুক্ত।


2
আমরা কি বিট তালিকা বা অন্যান্য সত্য / মিথ্যা তালিকার উপস্থাপনাগুলি ব্যবহার করতে পারি যা আমাদের পছন্দের ভাষাতে আরও প্রাকৃতিক?
মার্টিন এন্ডার

1
হ্যাঁ, আপনি যদি "বুলিয়ানস", "সত্য" এবং "মিথ্যা" পরিবর্তে চ্যালেঞ্জটিতে "সত্যবাদী" এবং "মিথ্যাবাদী" সম্পর্কে কথা বলেন তবে। ;)
মার্টিন এন্ডার

1
আমি বুলিয়ান সম্পর্কে পরিষ্কার নয়। আমাদের ভাষায় সত্য / মিথ্যা থাকলেও আমরা কি 0/1 ব্যবহার করতে পারি?
xnor

1
@ এক্সনর আহ, ভালো কথা। আমি মনে করি ইনপুট বেছে নেওয়ার অনুমতি দেওয়া মোটামুটি হবে, তবে আউটপুট অবশ্যই মিলবে, আপনি কি তাই বলে না?
অ্যাডাম

1
@ এক্সনর আমি আপনাকে শুনেছি, তবে হাস্কেল যদি বুলিয়ানদের সংখ্যার সাথে চিকিত্সা করতে না পারে, বা বুলিয়ানদের গাণিতিক করতে না পারে, তবে এটি হাস্কেলের গল্ফিং শক্তির আসল সীমাবদ্ধতা এবং রূপান্তর বা অন্যান্য কাজের প্রয়োজনে বাইট গণনায় প্রতিফলিত হওয়া উচিত -arounds। পাদটীকা তৈরি সম্পর্কে আপনি কী ভাবেন?
অ্যাডাম

উত্তর:


36

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

while 1:b=input();print b;True&=b<1

এটি অনলাইন চেষ্টা করুন! ইনপুট এবং আউটপুট সত্য / মিথ্যা লাইন of

ডেনিসের সমাধানের ভিত্তিতে । পরিবর্তনশীল redefines Trueহতে Falseপরে একটি Trueইনপুট সম্মুখীন হয়। এইভাবে, পরবর্তী কোনও ইনপুট Trueমূল্যায়ন করবে Falseএবং এটি মুদ্রিত হবে।

পুনঃনির্ধারণটি হ'ল True&=b<1, অর্থাৎ True = True & (b<1)। যখন ইনপুট bহয় True, তখন (b<1)মিথ্যা (যেহেতু True==1) হয় তাই Trueহয়ে যায় False


19
আপনি সত্য পুনরায় সংজ্ঞা দিতে পারেন ??? এটি একটি +1 প্রাপ্য কারণ
হ্যাক্স

1
@ হাইপার নিউট্রিনো হ্যাঁ, তবে পাইথন ৩-এ নয় (যা ভাল কারণ এখানে ভাষাটি পাইথন ২))
ব্রায়ান ম্যাকচ্যাচন

@ ব্রায়ানএমসিচাটন ঠিক আছে ধন্যবাদ। যদিও এটি কেবল অদ্ভুত ...
হাইপারনিউটারিনো

@ হাইপারনিউট্রিনো সম্ভবত আপনি এটি করতে পারেন তা উল্লেখযোগ্য True, False = False, True
ব্রায়ান ম্যাকচ্যাটন

1
@ হাইপারনিউটারিনো - না বিল্টিনগুলি এখনও 'আসল' মানটি ফিরিয়ে দেয়, আপনি যে পরিবর্তনটি টাইপ করেন এটি কেবল 'সত্য'। (বা মডিউলগুলি কিছু ক্ষেত্রে ...)। সুতরাং বুল (1) সত্য, তবে বুল (1) == সত্য মিথ্যা প্রত্যাবর্তন করে।
TLW

30

এপিএল , 2 বাইট

<\

"কম-বেশি ব্যবহার করে স্ক্যান করুন" ফাংশনটির মূল্যায়ন হয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এপিএলে অপারেটর \(স্ক্যান) প্রদত্ত ফাংশনটি ব্যবহার করে ডান দিক থেকে একটি অ্যারের প্রতিটি অজানা উপসর্গ হ্রাস করে। উদাহরণস্বরূপ, অ্যারে প্রদত্ত 0 1 0, এটি গণনা করে 0(দৈর্ঘ্যের 1 এর উপসর্গ), 0<1(দৈর্ঘ্যের 2 0<(1<0)উপসর্গ ) এবং (দৈর্ঘ্যের 2 উপসর্গ) এবং ফলাফলগুলিকে একটি নতুন অ্যারেতে রাখে; প্রথম বন্ধনী ডান সংযুক্ত করে। দ্বারা কমানো <সঠিক ফলাফল থেকে 1ঠিক যখন অ্যারের শেষ উপাদান হয় 1এবং বাকি করছে 0, তাই উপসর্গ বামদিকের সংশ্লিষ্ট 1কমিয়ে আনা 1অন্যদের কাছে এবং 0


অবশেষে! আমি ভাবছিলাম।
অ্যাডম

এখন আমি মনে করি আপনি জেতেও উত্তর দিতে পারবেন, না?
অ্যাডম

@ অ্যাডম হ্যাঁ, জেতে এটি 3 বাইট রয়েছে: </ \ জেলি সম্ভবত একটি উপমা 2 বাইট সমাধানও পেতে পারেন।
Zgarb

না, আমি এটি মনে করি না, কারণ জেলি বাম থেকে ডান।
অ্যাডম

আপনার পৃথক ভাষার উত্তর পৃথক পোস্ট হিসাবে পোস্ট করা উচিত।
অ্যাডম

22

অ্যাসেটো , 19 17 বাইট প্রতিযোগিতামূলক

নতুন সংস্করণ (17 বাইট):

এই নতুন সংস্করণটি একবারে অক্ষরগুলিকে এক করে নেয় এবং -Fবিকল্পটি দিয়ে সেরা সম্পাদিত হয় । এটি একই রকম কাজ করে তবে পূর্ববর্তী সমাধানের মতো নয় not

 >,
Op0
p|1u
,ip^

পুরানো উত্তর (19 বাইট):

(প্রতিদ্বন্দ্বিতা না করায় আমাকে দোভাষীতে দুটি বাগ ঠিক করতে হয়েছিল)

|p1u
iOp<
|!`X
rd!r

এটি প্রথম অ্যাসেটো উত্তর যা এটি তুলনামূলকভাবে ভাল করতে পারে তা হাইলাইট করে। "তালিকাগুলি" হ'ল ইনপুট স্ট্রিমগুলি, প্রতি লাইনের প্রতি এক ইনপুট, সত্যের জন্য "1", এবং "0" মিথ্যা, তালিকার শেষে চিহ্নিত খালি স্ট্রিং সহ।

কোড প্রবাহ চিত্রণ

এসিটো প্রোগ্রামগুলি হিলবার্ট বক্ররেখায় চালিত হয়, নীচে বাম দিক থেকে শুরু করে এবং নীচে ডানদিকে শেষ হয়। প্রথমে, আমরা rএকটি স্ট্রিং dএড করি , উপড়ে ফেলে, এবং !এটি উপেক্ষা করি ( ), খালি স্ট্রিংগুলিকে সত্যে পরিণত করে, সমস্ত কিছু মিথ্যাতে পরিণত করি। তারপরে একটি শর্তসাপেক্ষ আনুভূমিক আয়না রয়েছে ( |): স্ট্যাকের শীর্ষ উপাদানটি যদি সত্যবাদী হয় তবে অনুভূমিকভাবে মিরর। স্ট্রিং ফাঁকা থাকলে এটি ঘটে। আমরা যদি মিররিংটি করি, আমরা নীচে নামব X, যা দোভাষীকে মেরে ফেলে।

অন্যথায়, আমরা স্ট্যাকের বাকী অনুলিপিটিকে একটি iনেটেজারে রূপান্তর করি এবং অন্য শর্তাধীন অনুভূমিক মিরর করি: এবার, কারণ 1 সত্যবাদী এবং 0 টি মিথ্যা, আমরা যদি (প্রথম) সত্য মানটি দেখি তবে আমরা মিরর করি। যদি আমরা মিরর না করি (সুতরাং আমরা একটি 0 দেখেছি) আমরা pস্ট্যাকের কী রয়েছে তা Oছড়িয়ে দিই (যেহেতু স্ট্যাকটি খালি, একটি শূন্য) এবং বক্ররেখার কাছে যেতে পারি, যেখানে আমরা শুরু করেছি, পুরো প্রক্রিয়াটি আবার শুরু করে।

অন্যথায়, যখন আমরা একটি 1 দেখেছি, আমরা মিরর করে এবং এর উপর অবতরণ করি u, যা হিলবার্ট বক্ররেখার দিকে আমরা যে দিকটি পরিবর্তন করি তার বিপরীত হয়। 1pএকটি 1 মুদ্রণ করে, এবং এখন আমরা একইভাবে Oচলি যদি আমরা 0 দেখতে পেতাম তবে আমরা যেহেতু "বিপরীত মোডে" আছি, আমাদের উত্স নীচের ডানদিকে রয়েছে , তাই আমরা সেখানে লাফিয়ে উঠি।

এখন আমরা rঅন্য স্ট্রিংটি খাই এবং এটিকে অবহেলা করি। যদি স্ট্রিং খালি ছিল, সেইজন্য এবং শীর্ষ স্ট্যাক উপাদান truthy হয়, `হবে না পরবর্তী কমান্ড (অব্যাহতি X), আমাদের প্রস্থান করে।

তা না হলে (যদি স্ট্রিং খালি ছিল না), আমরা কি অব্যাহতি Xএবং এটি উপেক্ষা করুন। সেক্ষেত্রে, আমরা বাম দিকে ( <), print 0 (কারণ স্ট্যাকটি খালি), এবং Oশক্ত কাগজে ফিরে আসি।


2
আপনার প্রথম যথাযথ চ্যালেঞ্জটি অ্যাসেটোতে সমাধান হওয়া অভিনন্দন।
অ্যাডাম

2
চিত্রটি দেখে। ডান ...
অ্যাডম

1
@ অ্যাডাম সম্ভবত এটি নিজেই সহায়তা করবে না (যদি আপনি অ্যাসেটোকে না জানেন) এটি নিজে থেকে করেন তবে আমি ভেবেছিলাম এটি আরও ভালভাবে অনুসরণ করতে সক্ষম হওয়ার জন্য পাঠ্যের পাশাপাশি দেখতে ভাল লাগবে।
L3viathan

15

জাভা 8, 24 19 বাইট

Long::highestOneBit

আশা করি এটি আইনী; আমি বুঝতে পারি যে ইনপুট / আউটপুটটিকে ভাষার সত্য / মিথ্যা হিসাবে মূল্যায়ন করতে হবে না। ইনপুট হিসাবে দীর্ঘ সময় নেয় এবং একটিকে আউটপুট হিসাবে দেয়, সত্যগুলি সত্য হয় এবং বাইনারি উপস্থাপনায় শূন্য হয়। উদাহরণস্বরূপ, বাইনারি 00101 5 হয় এবং বাইনারি 00100 যা 4 return

পাঁচ বাইট @ পুহেলেনকে ধন্যবাদ


4
চমৎকার পন্থা। জাভা প্রতিযোগিতামূলক হচ্ছে
অ্যাডম

3
বাহ, JAVA একটি প্রতিযোগিতামূলক উত্তর হিসাবে
Zacharý

এটি কোডগল্ফ নিয়মের জন্য বৈধ কিনা পুরোপুরি নিশ্চিত নয়, তবে কোনও পদ্ধতি রেফারেন্স ব্যবহার করে এটি ১৯ টি চরকে উন্নত করা যেতে পারে: Long::highestOneBitযা একটি সংক্ষিপ্ত বাক্য গঠন সহ অভিন্ন ফলাফল তৈরি করে
15:58-এ

বেনাম ফাংশনগুলিতে মূল্যায়নকারী @ পুলহ্লেন এক্সপ্রেশনগুলি অনুমোদিত।
সাইওস

2
@ নাথানমারিল java.langপ্যাকেজটি ডিফল্টরূপে আমদানি করা হয়। থেকে ভাষা বৈশিষ্ট "একজন সংকলন ইউনিট স্বয়ংক্রিয়ভাবে সব ধরনের অ্যাক্সেস তার প্যাকেজের মধ্যে ঘোষণা করে এবং স্বয়ংক্রিয়ভাবে পাবলিক ধরনের সব পূর্বনির্ধারিত প্যাকেজ java.lang ঘোষণা আমদানি রয়েছে।"
জলি জোকার

12

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

1>`1
0

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

ইনপুট হ'ল 0(মিথ্যা জন্য) এবং এর একটি তালিকা1 গুলি (সত্যের জন্য ।

সবার সাথে মেলে 1এবং প্রথমটিকে বাদ দিয়ে প্রতিটি প্রতিস্থাপন করে ( 1>) 0


আমি এখন এটা দেখতে পারি. আপনি কিছু OS এ একটি অফিসে কাজ করছেন working একজন ম্যানেজার এসে রেগেক্স সহ পুরো ওএস লেখার জন্য আপনাকে চিৎকার করে।
ক্রিস্টোফার 21

10

ভি , 7 বাইট

f1òf1r0

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

আমার প্রথম ভি জমা! \ ণ /

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

f1òf1r0
f1       "go to the next occurence of 1
  ò      "repeat the following until end:
   f1    "    go to the next occurence of 1
     r0  "    replace with 0

কিভাবে কাজ করে?
ব্রায়ান ম্যাকচ্যাটন

@ ব্রায়ানএমসিচাটন ব্যাখ্যা যোগ করা হয়েছে।
ফাঁস নুন

এটি প্রথম অবস্থানে 1 এর জন্য ব্যর্থ :(
nmjcman101

@ nmjcman101 স্থির।
ফাঁস নুন

যেহেতু আপনি ইনপুট বিন্যাস পরিবর্তন, আপনি অদলবদল করতে পারেন r0সঙ্গে <C-x>বেশী হ্রাস এবং একটি বাইট সংরক্ষণ করুন।
nmjcman101

9

Haskell, , 25 বাইট

বেনামে ফাংশন একটি তালিকা গ্রহণ এবং ফিরে Bool এর ।

হিসাবে ব্যবহার করুন (foldr(\x l->x:map(x<)l)[])[False,True,False,False]

foldr(\x l->x:map(x<)l)[]

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

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

  • ডান থেকে একটি তালিকার উপরে ভাঁজ, নতুন উপাদানগুলি প্রিভেন্ডিং এবং সম্ভবত নিম্নলিখিতগুলি সংশোধন করছে।
  • xসাবলিস্টে চাপ দেওয়া উপাদান l
  • যে ব্যবহারগুলি Falseকম তুলনা True, তাই map(x<)lকোন দিকে মোড় নেবে Trueমধ্যে গুলি lমধ্যে Falseযদি xহয় True

9

জেলি , 4 বাইট

+\=a

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

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

ব্যাখ্যা

+\=a
+\    Cumulative sum of the input list
  =   Compare corresponding elements with the input
   a  Logical AND corresponding elements with the input

যতক্ষণ না কোনও এলিমেন্টের বামে সমস্ত উপাদান 0 থাকে, ততক্ষণ একটি উপাদানের সমষ্টিগত যোগফলটি উপাদানটির সমান হয়। প্রথম 1 এর ডানদিকে, দুটি পৃথক (কারণ আমরা এখন বাম দিকে উপাদানগুলির ননজারো মোট যোগ করছি)। সুতরাং, +\=আমাদের প্রথম সত্যবাদী উপাদান পর্যন্ত 1 টি (অর্থাত সত্য) সমন্বিত একটি তালিকা দেয়। অবশেষে, মূল তালিকা সহ যৌক্তিক এবং আমাদের কেবলমাত্র প্রথম সত্যবাদী উপাদানের জন্য একটি 1 দেবে ।


8

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

a=>a.map(e=>e&!(i-=e),i=1)

I / O 0s এবং 1 এর অ্যারে রয়েছে।


8

05 এ বি 1 ই , 6 বাইট

কোড:

ā<s1kQ

ব্যাখ্যা:

ā         # External enumeration, get a and push [1 .. len(a)]
 <        # Decrement each
  s       # Swap to get the input
   1k     # Get the first index of 1
     Q    # Check for equality with the enumeration array

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


1k>sƶ-_আরেকটি, যদিও খারাপ। liftধারণা সম্ভাব্য যদিও থাকতে পারে।
ম্যাজিক অক্টোপাস উরন




4

আর , 24 বাইট

cumsum(T<-scan(,F))==T&T

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

উদাহরণ:

ইনপুট FALSE TRUE TRUE FALSE
cumsum(T<-scan(,F))==Tরিটার্নের জন্য TRUE TRUE FALSE FALSE। স্ক্যান এফ লজিক্যাল ইনপুট নিশ্চিত করে।
FALSE TRUE TRUE FALSEএবং TRUE TRUE FALSE FALSEহয় FALSE TRUE FALSE FALSE। একটি একক &মৌলিক দিক তুলনা করে।


@rturnbull দুর্ভাগ্যক্রমে ইনপুট ফর্ম্যাটটি আউটপুট হিসাবে একই হতে হবে।
মিকিটি



3

পাইথন, 58 বাইট

lambda x:[x[i]and x.index(x[i])==i for i in range(len(x))]

যদি x[i]মিথ্যা হয় তবে আউটপুটটি মিথ্যা; অন্যথায়, এটি উপাদানটিকে নিজের অ্যারেতে প্রথম উপস্থিতি কিনা তা দেয়।



3

পার্ল 5, 20 বাইট

sub{map$_&&!$x++,@_}

সত্যবাদী 1এবং মিথ্যাটি ''(একটি খালি স্ট্রিং)।

ব্যাখ্যা:

mapতালিকার উপাদানগুলির উপর লুপ করে @_, আর্গুমেন্টগুলি সাব্রোটিনে চলে যায়, প্রতিটি উপাদানকে স্থানীয়ভাবে $ _ এ সেট করে এবং প্রত্যাবর্তন মানগুলির একটি অ্যারে প্রদান করে যা প্রতিটি উপাদান থেকে গুণন করে। $_&&!$x++আউটপুট $_যদি $_falsey এবং !$x++যদি এটা truthy হয়। (দ্রষ্টব্য যে && সংক্ষিপ্তসার্চিয়েটিং, সুতরাং !$x++প্রথম সত্যবাদী মান পৌঁছানো পর্যন্ত কার্যকর করা হয় না)। $x++আয়0 (যা falsey হয়) প্রথমবার এটি এবং চালানো হয় তারপর প্রত্যেক সময় বৃদ্ধি (এবং তাই truthy অবশেষ)। !Negates $x++, এবং তাই এটি truthy প্রথমবার এটা সম্মুখীন হয়েছে এবং falsey তারপরে সেই অবস্থানটি দেখায়।


আপনার সন্দেহগুলি ন্যায়সঙ্গত হয়েছিল: আপনাকে একটি সম্পূর্ণ ফাংশন (বা একটি সম্পূর্ণ প্রোগ্রাম) জমা দিতে হবে; এবং এটি কেবলমাত্র একটি স্নিপেট (এর জন্য, ব্যতীত অবৈধ sub{...})।
দাদা

2

পাইথ - 9 বাইট

.e&b!s<Qk

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

.e&b!s<Qk
.e          # Python's 'enumerate' (i.e., for each index k and each element b at that index)
      <Qk   # The first k elements of the input
     s      # 'Sum' these first k elements (with booleans, this is a logical 'or')
  &b!       # The value of the output at index k is [value of input @ index k]&&[the negation of the 'sum']

1
এটি একটি পরিবর্তনশীল ব্যবহার করতে এবং মাত্র স্বাভাবিকভাবে এটি উপর মানচিত্র আরও দক্ষ হবে বলে মনে হয়: m&!~|Z
FryAmTheEggman


2

সি #, 77 বাইট

a=>{var b=1<0;for(int i=0;i<a.Length;){a[i]=b?1<0:a[i];b|=a[i++];}return a;};

সংকলন a Func<bool[], bool[]>। চতুর কিছুই সত্যিই না, কেবল একটি সরাসরি এগিয়ে সমাধান।


2

সেড , 16 19 বাইট

15 18 বাইট-সোর্সকোড + -1 বাইট ফর-আর ফ্ল্যাগ (বা বিএসডি সেডের জন্য -E পতাকা)।

:
s/1(0*)1/1\10/
t

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

সম্পাদনা: ধন্যবাদ রাইলি ভুল ইশারা জন্য।


@ রিলে তা নির্দেশ করার জন্য ধন্যবাদ! দেখে মনে হচ্ছে টিআইওর সেডের একটি সংস্করণ রয়েছে যা খনি (বিএসডি) থেকে আলাদা। আমি লেবেলগুলি খালি রাখতে পারি না। এটা জেনে ভাল।
ম্যাক্সিম মিখায়লভ

হ্যাঁ, দুঃখিত। টিআইও জিএনইউ সেড ব্যবহার করে। এটি একটি বাগ সক্রিয় বৈশিষ্ট্য।
রিলে 13

2

জেলি , 4 বাইট

TḊṬ^

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

কিভাবে?

এটি একটি সুন্দর আক্ষরিক অর্থে যা জিজ্ঞাসা করা হয়েছিল তা করে:

TḊṬ^ - Main link: list a   e.g. [0,1,0,1,0,0,1]  or  [0,1,0,1,0,1,0]
T    - get the truthy indexes   [  2,  4,    7]      [  2,  4,  6  ]
 Ḋ   - dequeue                  [      4,    7]      [      4,  6  ]
  T  - make a boolean array     [0,0,0,1,0,0,1]      [0,0,0,1,0,1  ]
   ^ - XOR that with a          [0,1,0,0,0,0,0]      [0,1,0,0,0,0,0]

2

সি (জিসিসি বিল্টিন সহ), 40

কিছুটা ভিন্ন পদ্ধতি:

f(n){return!n?0:1<<31-__builtin_clz(n);}

এটি অবৈধ হিসাবে রায়যুক্ত হতে পারে - সেক্ষেত্রে আমি আনন্দের সাথে প্রতিযোগী হিসাবে চিহ্নিত করব।

ইনপুট এবং আউটপুট "অ্যারে" 32-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার - এটি ইনপুট তালিকার আকারটিকে হুবহু 32 হিসাবে সীমাবদ্ধ করে - এটি কোনও অযোগ্যতা হতে পারে। যদি ইনপুটটি 32 বিটেরও কম দীর্ঘ হয়, তবে এটি শেষে শূন্য বিট সহ প্যাড করা যেতে পারে।

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


2

ব্যাচ, 85 73 বাইট

:a
@(if %1.==. exit)&set/ar=(1-f)*%1
@echo %r%&set/af^|=%1&shift&goto a

কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। উদাহরণের জন্য:1.bat 0 1 0 1 0 0 1

পূর্ববর্তী সংস্করণ

@set f=1
:a
@(if %1.==. exit)&set/ar=f*%1
@echo %r%&(if %1==1 set f=)&shift&goto a

2

ব্রেন-ফ্লাক , 230 বাইট

([]){{}({}[()]<>)<>([])}{}<>([]){{}({}<>)<>([])}{}<>({<({}<>)<>>()}<(())>){({}[()]<<>({}<>)>)}{}(([])<{{}(({})())({<{}>{}((<()>))}<{}{}>)({}<>)<>([])}<>>){({}[()]<({}<>)<>>)}{}<>([]){{}({}<>)<>([])}{}<>{}{}([]){{}({}<>)<>([])}{}<>

আমি শীঘ্রই ব্যাখ্যা করব তবে আমার মা আমাকে কিছু ভাজা আলু রান্না করেছেন

([]){{}({}[()]<>)<>([])}{}<>([]){{}({}<>)<>([])}{}<> Subtracts one from every item

({<({}<>)<>>()}<(())>){({}[()]<<>({}<>)>)}{} Loops down stack until current item is zero and adds one

(([])<{{} (({})())({<{}>{}((<()>))}<{}{}>) ({}<>)<>([])}<>>){({}[()]<({}<>)<>>)}{}<> On every item of stack if it is 0 do nothing and if it is -1 add one

([]){{}({}<>)<>([])}{}<> Flip stack

{}{} Remove the two zeros at top of stack

([]){{}({}<>)<>([])}{}<> Flip stack back

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

বিশেষ ধন্যবাদ

কোড সহ আমাকে একটি টন সহায়তা করার জন্য গম উইজার্ড এবং রিলিকে বিশেষ ধন্যবাদ!


2

পাইথন 3, 69 66 64 60 54 53 বাইট

lambda i:[k==i.index(j)and j for k,j in enumerate(i)]

falseS এবং trues এর একটি অ্যারে নেয় । falseবর্তমানের পুনরাবৃত্তির মান হয় trueএবং ইনপুটটিতে এটি প্রথম trueহয় তবে এটি গুলি এর একটি তালিকা বোধগম্যতা ।

এটি কিছুটা দীর্ঘ বলে মনে হচ্ছে (এবং এটি আমার প্রথম ল্যাম্বদা), সুতরাং আপনি যদি এটির গল্ফ করার কোনও উপায় খুঁজে পান তবে এটি প্রশংসিত হবে!


তুমি কি ব্যাখ্যা করতে পারো?
অ্যাডম

ওহ, উফ, প্রশ্নটির ভুল ব্যাখ্যা দিয়েছিল।
OldBunny2800

মুছে ফেলা এবং উত্তর স্থির
OldBunny2800

আপনি তৈরি করে একটি বাইট সংরক্ষণ করতে পারেন 0 for 0for
জাকারি

এটি 1if এবং 1else এর জন্য কাজ করে, তাই না? ধন্যবাদ!
ওল্ডবুনি 2800

2

ব্রেন-ফ্লাক , 146 144 বাইট tes

([]){{}({}<>)(())<>([])}{}<>((())){{}({}<>)<>}{}<>(()){{}((){[()](<{}>)}{})(<>)<>}<>(())<>([]){{}(<{}<>>)<>([])}{}<>{}{}([]){{}({}<>)<>([])}<>{}

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

# Reverse the stack and add a 1 between each to help with reversing later
([]){{}({}<>)(())<>([])}{}<>

# Add a 1 in case there aren't any truthy values (and another 1 like before)
((()))

# Reverse the stack back to it's original order using the 1s from earlier to know when to stop
{{}({}<>)<>}{}<>

# Push 1 to start the loop
(())

# Until we find the first 1
{

 # Pop the last value
 {}

 # Logical not
 ((){[()](<{}>)}{})

  # Put a 0 on the other stack
  (<>)<>

# end loop
}

# Put a 1 on the other stack
<>(())<>

# Push the stack height
([])

# While there are values on this stack
{

 # Move them to the other stack as a 0
 {}(<{}<>>)<>([])

# End while
}{}

# Pop an extra 0
{}

# Switch stacks
<>

# Copy everything back (to reverse it back to it's original)
([])
{
 {}({}<>)<>([])
}<>{}

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