বিট রান রুনডাউন


43

একটি পূর্ণসংখ্যা দেওয়া n > 0, আউটপুট দীর্ঘতম সংলগ্ন ক্রম দৈর্ঘ্য 0বা 1তার বাইনারি প্রতিনিধিত্ব।

উদাহরণ

  • 6110বাইনারি লেখা হয়; দীর্ঘতম ক্রমটি 11তাই আমাদের ফিরে আসা উচিত2
  • 16100004
  • 89311011111015
  • 13373711010001101000000110116
  • 111
  • 99655461001100000001111111010107


আমরা কি 32 বিট বা bit৪ বিটের মতো পূর্ণসংখ্যার আকারের কোনও সীমা অনুমান করতে পারি?
xnor

@xnor হ্যাঁ আপনি অনুমান করতে পারেন int- এ 32 বিট সর্বোচ্চ
Arnaud

উত্তর:


30

পাইথন 2 , 46 45 বাইট

f=lambda n,k=1:`k`in bin(n^n/2)and-~f(n,k*10)

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

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

দ্বারা XORing এন এবং N / 2 (দ্বারা বিভাজক 2 মূলত গত বিট বন্ধ চপ), আমরা একটি নতুন পূর্ণসংখ্যা পেতে মি যার সেট না বিট মধ্যে সংলগ্ন বিট মিলে ইঙ্গিত এন

উদাহরণস্বরূপ, যদি n = 1337371 হয় তবে আমাদের নিম্নলিখিতটি রয়েছে।

n    = 1337371 = 101000110100000011011₂
n/2  =  668685 =  10100011010000001101₂
m    = 1989654 = 111100101110000010110₂

এটি দীর্ঘতম শূণ্যতম সন্ধানের কাজটি হ্রাস করে। যেহেতু একটি ধনাত্মক পূর্ণসংখ্যা বাইনারি উপস্থাপনা সবসময় একটি দিয়ে শুরু হয় 1 , আমরা দীর্ঘতম এটি চেষ্টা করব 10 * সংখ্যা স্ট্রিংটি বাইনারি উপস্থাপনা দেখা মি । এটি পুনরাবৃত্তভাবে করা যেতে পারে।

1 কে হিসাবে শুরু করুন । প্রতিটি সময় মৃত্যুদন্ড কার্যকর করা হয়, আমরা প্রথমে পরীক্ষা করে এর দশমিক উপস্থাপনা বাইনারি উপস্থাপনা দেখা মি । যদি এটি হয়, আমরা কে 10 দ্বারা গুণিত করব এবং আবার এফ কল করব । যদি এটি না হয়, ডানদিকে কোডটি কার্যকর করা হয়নি এবং আমরা মিথ্যা ফিরিয়ে আছি ।and

এটি করার জন্য, আমরা প্রথমে গণনা করি bin(k)[3:]। আমাদের উদাহরণে, bin(k)ফিরে আসে '0b111100101110000010110'এবং 0b1শুরুতে এটি দিয়ে মুছে ফেলা হয় [3:]

এখন, -~recursive কল করার আগে বাড়তি মিথ্যা / 0 প্রত্যেক সময় জন্য একবার যাও recursively বলা হয়। একবার 10 {ঞ} ( 1 দ্বারা অনুসরণ এর পুনরাবৃত্তির 0 ) বাইনারি উপস্থাপনা মধ্যে প্রদর্শিত হবে না , এ শূন্যর দীর্ঘতম চলা দৈর্ঘ্য ঞ - 1 । যেহেতু ঞ - 1 টানা শূণ্যসমূহ ইঙ্গিত মধ্যে ম্যাচিং সংলগ্ন বিট এন , আকাঙ্ক্ষিত ফল , যা কি আমরা বৃদ্ধিশীল দ্বারা প্রাপ্ত মিথ্যা / 0মোট জে বার।


2
আসলেই চালাক!
ক্রেগআর 8806

1
বাহ, চালাক এটা কখনই ভাবতে পারিনি।
হাইপারনিউটারিনো

10 টির শক্তির সাথে দুর্দান্ত কৌশল, কিন্তু তারা কি কোনও এল দিয়ে দীর্ঘায়িত হয় না?
xnor

@ এক্সনোর অবশেষে, তবে এটি কেবল একটি ডেটা টাইপের সীমাবদ্ধতা। সি, জাভাস্ক্রিপ্ট এবং পিএইচপি উত্তরগুলিও এ থেকে ভোগে।
ডেনিস

উত্পাদনে ব্যবহার করা হলে এটি মারাত্মকভাবে অকল্পনীয় হবে। সংক্ষেপে (ঘেহে) গল্ফ অর্জন করেছে, একের মধ্যে গর্ত :)
জাক

17

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

f=lambda n,r=1:max(r,n and f(n/2,1+~-n/2%2*r))

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

nবার বার গ্রহণ করে n/2এবং বিপরীত থেকে বাইনারি অঙ্কগুলি বের করে n%2rশেষের দুটি অঙ্ক অসম হয়, তবে 1 যুক্ত করে 0 তে পুনরায় সেট করে সমান সংখ্যার বর্তমান চলমান দৈর্ঘ্যের সন্ধান করে।

অভিব্যক্তি ~-n/2%2, কিনা গত দুটি সংখ্যা সমান একটি সূচক অর্থাত n0 বা 3 মডিউল 4. অন্তিম সংখ্যা দুটি একসঙ্গে নিষ্কাশিত পূর্ববর্তী অঙ্ক স্মরণ চেয়ে খাটো চেক করা হচ্ছে হয়।


14

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

b.¡€gM

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

ব্যাখ্যা

b       # convert to binary
 .¡     # split at difference
   €g   # map length on each
     M  # take max

2
হা! অবশেষে! এর জন্য একটি ব্যবহার , আমি এটির চেষ্টা করার জন্য নিজেকে জোর করে বন্ধ করতে পারি।
যাদু অক্টোপাস উরান

@ কারাসোকম্পিউটিং: বেশ নিশ্চিত যে আমি এটি কয়েকটি উত্তর ব্যবহার করেছি।
Emigna

9

গণিত, 38 বাইট

Max[Length/@Split[#~IntegerDigits~2]]&

অথবা

Max[Tr/@(1^Split[#~IntegerDigits~2])]&

9

পাইথন, 53 বাইট

import re;lambda g:max(map(len,re.findall('1+|0+',bin(g))))

নামবিহীন ল্যাম্বদা ফাংশন।



9

রুবি, 41 40 বাইট

->b{("%b%b"%[b,~b]).scan(/1+/).max.size}

খ বা তার বিপরীতে '1' এর দীর্ঘতম ক্রম সন্ধান করুন।

1 বাইট সংরক্ষণের জন্য মান্যাটওয়ার্ককে ধন্যবাদ।


2
অন্যান্য সংস্করণ সম্পর্কে নিশ্চিত না, তবে ২.৩.১ %b-এর মধ্যে স্থানগুলির প্রয়োজন নেই the
manatwork

আপনি ঠিক বলেছেন, নেতিবাচক বাইনারি সংখ্যাগুলি ".." দিয়ে শুরু হয়। ধন্যবাদ।
জিবি

7

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

f=(n,r=0,l=1,d=2)=>n?f(n>>1,d^n&1?1:++r,r>l?r:l,n&1):l

প্রচুর বিট ম্যানিপুলেশন সহ একটি পুনরাবৃত্ত সমাধান। nইনপুট সঞ্চয় করে, rবর্তমান রানের lদৈর্ঘ্য সঞ্চয় করে, দীর্ঘতম দৈর্ঘ্যের দৈর্ঘ্য dসঞ্চয় করে এবং পূর্ববর্তী অঙ্কটি সঞ্চয় করে।

পরীক্ষার স্নিপেট

f=(n,r=0,l=1,d=2)=>n?f(n>>1,d^n&1?1:++r,r>l?r:l,n&1):l

for(var i of [0,1,2,3,4,5,6,7,8,9,16,893,1337371]) console.log(`f(${i}): ${f(i)}`)


1
একই ধারণা, তবে আরও বিট ক্রিয়াকলাপগুলি ব্যবহার করে এবং f=(x,b,n,m)=>x?f(x>>1,x&1,n=x&1^b||-~n,m>n?m:n):m
অবধারিত

7

রুবি, 51 44 43 বাইট

ফাংশন সমাধান।

@ মানাত ওয়ার্ক ম্যাজিক দিয়ে তৈরি

->s{('%b'%s).scan(/0+|1+/).map(&:size).max}

এটি কি একটানা অভিন্ন অঙ্কের জন্য পরীক্ষা করে থাকে বা কেবল একটানা 0s?
নেজেনিসিস

2
জন্য 893. ভুল ফলাফলের
orlp

@orlp আর নেই! : ডি
মান কালি

1
আমি 1 ম এবং 2nd সমাধান একত্রিত হবে: ->s{s.to_s(2).scan(/0+|1+/).map(&:size).max}
manatwork

6

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

a=lambda n:n and max((n&-n|~n&-~n).bit_length()-1,a(n/2))

একটি পুনরাবৃত্তি সমাধান। বিট ম্যাজিকের জন্য একটি সংক্ষিপ্ত ফর্ম থাকতে পারে।


6

পার্ল, 43 বাইট

#!perl -p
\@a[$a+=$_-1+($_>>=1)&1||-$a]while$_;$_=@a

শেবাংকে এক হিসাবে গণনা করা, স্টিডিনের কাছ থেকে ইনপুট নেওয়া হয়।

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


শেবাংগুলি 0 বাইট হিসাবে গণনা করে।
ক্যালকুলেটরফলাইন

@CalculatorFeline মেটা উপর ঐক্যমত্য যে #!perlশূন্য, না গন্য #!perl -p
প্রিমো

@ ক্যালকুলেটরফলাইন: -pআপনার পার্ল কমান্ড লাইনের যে কোনও উপায়ে যুক্তি (যেমন -eবা -M5.010) থাকবে এই ধারণা নিয়ে খরচ 1, যাতে আপনি হাইফেনগুলির pমধ্যে একটির পরে স্লিপ করতে পারেন । #!perlমুক্ত (যদিও অপ্রয়োজনীয়)।

জানা ভাল. ।
ক্যালকুলেটরফলিন

5

পিপ , 16 বাইট

দেখে মনে হচ্ছে একই সংখ্যার রান পাওয়ার জন্য আরও ছোট উপায় হতে হবে ...

MX#*(TBa`1+|0+`)

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

     TBa          1st cmdline arg, To Binary
    (   `1+|0+`)  Find all matches of this regex
  #*              Map length operator to that list
MX                Get the maximum and autoprint it


4

হাস্কেল, 79 টি অক্ষর

maximum.map length.group.i

কোথায়

import Data.List
i 0=[]
i n=mod n 2:i(div n 2)

বা অবারিত সংস্করণে:

import Data.List
pcg :: Int -> Int
pcg = maximum . map length . group . intToBin

intToBin :: Int -> [Int]
intToBin 0 = []
intToBin n = n `mod` 2 : intToBin (n `div` 2)

ব্যাখ্যা:

intToBinবাইনারি ডিজিটের তালিকায় একটি int কে রূপান্তর করে (প্রথমে lsb)। groupগোষ্ঠীগুলি সুসংগত ক্রম, যেমন [1, 1, 0, 0, 0, 1]হয়ে ওঠে [[1, 1],[0, 0, 0],[1]]maximum . map lengthপ্রতিটি অভ্যন্তরের তালিকার দৈর্ঘ্যের জন্য গণনা করে এবং দীর্ঘতম দৈর্ঘ্যের দৈর্ঘ্য প্রদান করে।

সম্পাদনা: বাইটস সংরক্ষণ করার জন্য @ এক্সনর এবং @ লাইকনিকে ধন্যবাদ


2
groupডিফল্টরূপে প্রিলেডে নেই, import Data.Listএটি ব্যবহারের জন্য আপনার করা দরকার ।
xnor

1
মনে রাখবেন স্থানে রক্ষীদের ব্যবহার করতে পারেন let: i n|(q,r)<-n`quotRem`2=r:i q। আমাদের হাস্কেল গল্ফ টিপস দেখুনquotRemহতে পারে divMod। আমি মনে করি আপনি i 0=[]বেস কেস হিসাবে ব্যবহার করতে পারেন ।
xnor

1
ব্যবহার divএবং modসরাসরি এমনকি খাটো: i n=mod n 2:i(div n 2)
লাইকোনি

3

পাইথ, 7 বাইট

heSr8.B

বাইনারি স্ট্রিংয়ে দৈর্ঘ্যের এনকোড চালান, তারপরে এটি বাছাই করুন যাতে দীর্ঘতম রানগুলি শেষ হয়, তারপরে তালিকার শেষ উপাদানটির (দীর্ঘতম রান) প্রথম উপাদানটি (দৈর্ঘ্য) নিন।

সিউডোকোডে:

'  S     ' sorted(
'   r8   '   run_length_encode(
'     .BQ'     bin(input()) ))  \
'he      '   [-1][0]

3

জে , 21 বাইট

[:>./#:#;.1~1,2~:/\#:

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

ব্যাখ্যা

[:>./#:#;.1~1,2~:/\#:  Input: integer n
                   #:  Binary digits of n
              2   \    For each continuous subarray of 2 digits
               ~:/       Reduce it using not-equals
            1,         Prepend a 1 to those results
     #:                Binary digits of n
        ;.1~           Cut the binary digits at each location with a 1
       #                 Get the length of each cut
[:>./                  Reduce those lengths using maximum and return

3

ম্যাটল্যাব 71 বাইট

m=1;a=diff(int8(dec2bin(a)));while(any(a==0)),m=m+1;a=diff(a);end;m

এটি পূর্ণসংখ্যার ভেরিয়েবল 'a' কে বাইনারি ইনট 8 অ্যারে রূপান্তরিত করে ফলাফলের শূন্য না হওয়া পর্যন্ত ফলাফলকে আলাদা করার সংখ্যাটি গণনা করে।

আমি এখানে নতুন. এই ধরণের ইনপুট এবং ওয়ান-লাইনার পিসিজি নিয়মের দ্বারা অনুমোদিত?


3
পিপিসিজিতে আপনাকে স্বাগতম! ডিফল্টরূপে, কেবল ফাংশন বা সম্পূর্ণ প্রোগ্রাম (কোড স্নিপেট নয়) গৃহীত হয়। আপনার ক্ষেত্রে মানে আপনি ইনপুট দরকার aসঙ্গে a=input('');। এছাড়াও, কিছু গল্ফিং পরামর্শ: ~aপরিবর্তে a==0। আপনার কি সত্যই দরকার int8?
লুইস মেন্ডো

3

অক্টাভা , 31 বাইট

@(n)max(runlength(+dec2bin(n)))

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

ব্যাখ্যা

এটি আমার এমএটিএল উত্তরের একটি অনুবাদ। আমার প্রাথমিক পরিকল্পনাটি ছিল ভিন্ন পদ্ধতির, যথা @(n)max(diff(find(diff([0 +dec2bin(n) 0]))))। তবে দেখা যাচ্ছে যে অষ্টাভের একটি runlengthফাংশন রয়েছে (যা আমি সবেমাত্র জানতে পেরেছি)। ডিফল্টরূপে এটি কেবল রান-লেংথের অ্যারে আউটপুট করে, তাই কাঙ্ক্ষিত ফলাফলটি maxসেই অ্যারের হয়। এর আউটপুট dec2bin, যা একটি চর অ্যারে (স্ট্রিং) ধারণ করে '0'এবং এটি '1'ব্যবহার করে একটি সংখ্যাসূচক অ্যারে রূপান্তর করা দরকার +, কারণ runlengthসংখ্যার ইনপুট আশা করে।


3

বাশ / ইউনিক্স ইউটিলিটিস, 66 65 42 বাইট

উল্লেখযোগ্য উন্নতির জন্য (23 বাইট!) @ ডিজিটাল ট্রামুমাকে ধন্যবাদ।

dc<<<`dc -e2o?p|fold -1|uniq -c|sort -n`rp

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


1
@ ডিজিটাল ট্রামুমার উন্নতিগুলির জন্য ধন্যবাদ, বিশেষত ভাঁজ অন্তর্ভুক্ত করার জন্য, যা আমার সাধারণ অস্ত্রাগারে হয়নি।
মিচেল স্পেক্টর

3

বাশ (+ কোর্টিলস, + জিএনইউ গ্রেপ), 33, 32 বাইট

সম্পাদনাগুলি:

  • বিয়োগ 1 বাইট ( গ্রেপ এক্সপ্রেশনের চারপাশে সরানো উদ্ধৃতি )

Golfed

dc -e2o$1p|grep -Po 1+\|0+|wc -L

ব্যাখ্যা

 #Convert to binary
 >dc -e2o893p
 1101111101

 #Place each continuous run of 1es or 0es on its own line
 >dc -e2o893p|grep -Po '1+|0+'
 11
 0
 11111
 0
 1

 #Output the length of the longest line
 >dc -e2o893p|grep -Po '1+|0+'|wc -L
 5

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


আফাইক, গ্রেপ বাশ বা কোর্টিলের কোনও অংশই তৈরি করে না, যদিও এটি নিজস্ব দ্বারা রক্ষণাবেক্ষণ এবং বিতরণ করা হয় । ডিসি সম্পর্কে নিশ্চিত নন, তবে এটি জিএনইউ বিশ্বে একটি স্বতন্ত্র সরঞ্জাম হিসাবে ব্যবহৃত হত। কোরিউটিলগুলির একমাত্র অংশ হ'ল ডব্লিউসি।
মোড়াকী

@Moreaki, , grep POSIX, তাই কোন শেল ভিত্তিক উত্তর যে বোঝা এটি আগে থেকেই পাওয়া যায়। ডিসি পসিক্স নয় তবে প্রায় প্রতিটি * নিক্স সিস্টেমের একটি আদর্শ অংশ, তাই এটি সাধারণত পৃথক নির্ভরতা হিসাবেও উল্লেখ করা হয় না।
জেপেলিন

আমি বিবেচনা করি আমরা এখানে দুটি ভিন্ন ট্রেনের মধ্যে রয়েছি: আমার বক্তব্যটি গ্রিপ পসিক্স না থাকলে ছিল না, আমার বক্তব্যটি হ'ল আমার কাছে আপনার জমা দেওয়ার শিরোনামটি ইঙ্গিত দিয়েছে যে আপনার সমাধানের কাজটি করার জন্য একজনকে বাশ + কোর্টিলের প্রয়োজন হবে, যখন এটা মনে হয় না। আমি যখন এটি প্রথম পড়ি তখন এই তথ্যটি আমার কাছে বিভ্রান্ত হয়েছিল। আপনি যদি কোনও ম্যাকোস শিপড ব্যাশ শেলটিতে আপনার সমাধানটি চেষ্টা করেন তবে এটি কার্যকর হবে না; এবং আপনি কোরিউটিলগুলি ইনস্টল করেছেন কিনা তা বিবেচ্য নয়; এটি কার্যকর করতে আপনার GNU গ্রেপ দরকার need
মোরাকী

@ মোড়াকী, হ্যাঁ, আমি যখন জিএনইউ সিস্টেমটি কেবল তখনই বোঝাই, যখন আমি + কোরিটিলস বলি, তবে যেটি সর্বদা হয় না। আমি আরও সুনির্দিষ্ট হতে শিরোনাম আপডেট করেছি।
জেপেলিন


2

সি #, 106 বাইট

n=>{int l=1,o=0,p=0;foreach(var c in System.Convert.ToString(n,2)){o=c!=p?1:o+1;l=o>l?o:l;p=c;}return l;};

ফর্ম্যাট সংস্করণ:

System.Func<int, int> f = n =>
{
    int l = 1, o = 0, p = 0;
    foreach (var c in System.Convert.ToString(n, 2))
    {
        o = c != p ? 1 : o + 1;

        l = o > l ? o : l;

        p = c;
    }

    return l;
};

এবং হোয়াইটস্পেস সরানো সহ 118 বাইটে সূচক দ্বারা স্ট্রিংটিতে অ্যাক্সেসের বিকল্প বিকল্প:

System.Func<int, int> f2 = n =>
{
    var s = System.Convert.ToString(n, 2);

    int l = 1, c = 1, i = 0;

    for (; i < s.Length - 1; )
    {
        c = s[i] == s[++i] ? c + 1 : 1;
        l = l < c ? c : l;
    }

    return l;
};

2

জাভাস্ক্রিপ্ট, 66 বাইট

x=>Math.max(...x.toString(2).split(/(0+|1+)/g).map(y=>y.leng‌​th))

কোডটির জন্য manatwork ধন্যবাদ ।

ব্যাখ্যা

x.toString(2)

সংখ্যাটিকে বাইনারি স্ট্রিংয়ে রূপান্তর করুন।

split(/(0+|1+)/g)

প্রতিটি আলাদা অক্ষর বিভক্ত করুন (0 বা 1) (এই রেজেক্স খালি জায়গা ক্যাপচার করে তবে সেগুলি উপেক্ষা করা যেতে পারে)

map(y=>y.length)

অ্যারের প্রতিটি উপাদানটির দৈর্ঘ্য পেতে এবং এটিকে ফেরত অ্যারেতে রাখুন।

...

আর্গুমেন্টের তালিকায় অ্যারে রূপান্তর করুন ([1,2,3] -> 1,2,3)

Math.max()

যুক্তি থেকে সর্বাধিক সংখ্যা পান।


1
অনুপ্রেরণার জন্য মান কালি এর রুবি সমাধান জমা দিয়ে, এটি রূপান্তরিত হতে পারে x=>x.toString(2).split(/(0+|1+)/g).map(y=>y.length).sort().pop()। অথবা একই দৈর্ঘ্য: x=>Math.max(...x.toString(2).split(/(0+|1+)/g).map(y=>y.length))
manatwork

3
আমি মনে করি আপনি বাছাই ফাংশন একটি শিকারী যোগ করতে হতে পারে sort((a,b)=>b-a)। ডিফল্টরূপে, সাজানোর ফাংশন স্থাপন 10মধ্যবর্তী 1এবং 2
মামা ফান রোল

অথবা আপনি ম্যাথ.ম্যাক্স ব্যবহার করতে পারেন, যেমন ম্যানটওয়ার্কের পরামর্শ।
মামা ফান রোল

ডাব্লুটিএফ, তবে তারা সংখ্যা। জেএস দয়া করে।

2

আশ্চর্য , 27 বাইট

max.map#len.mstr`0+|1+`g.bn

ব্যবহার:

(max.map#len.mstr`0+|1+`g.bn)123

বাইনারি রূপান্তরিত হয়, 0 এবং 1 এর প্রতিটি অনুক্রমের সাথে মেলে, প্রতিটি ম্যাচের দৈর্ঘ্য পায় এবং সর্বাধিক হয়।


এটি কি ইনপুটটিকে বাইনারি রূপান্তর করে?
লাইকনি

ওওহ আমি সেই অংশটি মিস করেছি। দ্রুত সমাধান: পি
মামা ফান রোল

2

ব্যাচ, 102 বাইট

@set/a"n=%1/2,d=%1%%2,r=1+(%3+0)*!(0%2^d),l=%4-(%4-r>>5)
@if not %n%==0 %0 %n% %d% %r% %l%
@echo %l%

@ Edc65 এর উত্তরের পোর্ট। %2..%4 প্রথম কলটিতে খালি থাকবে, তাই আমাকে প্রকাশগুলি এমনভাবে লিখতে হবে যাতে তারা এখনও কাজ করবে। সর্বাধিক সাধারণ ঘটনাটি %3যা আমাকে লিখতে হয়েছিল (%3+0)%2সহজ, এটি কেবল যেমন হতে পারে 0বা 1যা অষ্টালে একই, তাই 0%2এখানে কাজ করে। %4আরও সহজ হয়ে উঠেছে, কারণ আমার কেবল এটি থেকে বিয়োগ করা দরকার। ব্যাচের সাথে তুলনা অপারেটর না থাকায় (%4-r>>5)এটি তুলনা করতে ব্যবহৃত হয় ।lrset/a


2

ডায়ালগ এপিএল , 22 বাইট

বেনামে ফাংশন ট্রেন

⌈/∘(≢¨⊢⊂⍨1,2≠/⊢)2⊥⍣¯1

⌈/∘(... নিম্নলিখিত বেনামী ফাংশন-ট্রেনের সর্বাধিক ফলাফল ...

≢¨  প্রত্যেকের ট্যালি

⊢⊂⍨ আর্গুমেন্টের বিভাজন, যেখানে বিভাজনটি নির্ধারিত হয় সেগুলি দ্বারা

1, এক প্রতিশোধ

2≠/ যুগলভাবে অসম

 যুক্তি

) আবেদন করা

2⊥⍣¯1 থেকে-বেস -২ একবারে নেতিবাচক প্রয়োগ করে (অর্থাত্ বেস -২, একবার) থেকে

 যুক্তি

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


2

জাপট, 15 বাইট

2o!q¢ c ml n gJ

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

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

                 // Implicit: U = input integer, J = -1
2o               // Create the range [0...2), or [0,1].
  ! ¢            // Map each item Z in this range to U.s(2)
   q             //                                        .q(Z).
                 // This returns the runs of 1's and 0's in the binary
                 // representation of U, respectively.
      c          // Flatten into a single list.
        ml       // Map each item Z to Z.length.
           n gJ  // Sort the result and grab the item at index -1, or the last item.
                 // This returns the largest element in the list.
                 // Implicit: output result of last expression

2

আর, 45 34 বাইট

max(rle(miscFuncs::bin(scan()))$l)

@ আর্টারনবুল এবং @ প্ল্যানাপাসকে একটি নির্বোধ ভুল বোঝাবুঝির সমাধান করা হয়েছে।


সম্ভবত আমি কিছু মিস করছি, তবে ইনপুটটি বাইনারি সংখ্যা নয়, পূর্ণসংখ্যা হিসাবে অনুমিত হয়? এবং আমরা সর্বাধিক রান 0বা এর সন্ধান করছি 1, ঠিক না 0?
rturnbull

@ প্ল্যানাপাস আমি সত্যই জানি না। অবশ্যই অনুমানটি পুরোপুরি মিস করেছে। এখনই স্থির।
বিলিউব

2

পাওয়ারশেল , 78 74 73 বাইট

([regex]::Matches([convert]::ToString("$args",2),'0+|1+')|% Le*|sort)[-1]

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

উঘ ও। নেট পদ্ধতি।

এটি কেবলমাত্র একটি জেনার্স এবং শূন্যের সামঞ্জস্যপূর্ণ সিকোয়েন্সগুলি অনুসন্ধান করতে (এবং ম্যাচ করে) ব্যবহার করে, তারপরে এটি Lengthসম্পত্তি গ্রহণ করে (একটি নতুন প্যাটার্ন সহ আমি দেখতে পেলাম যে সামান্য পরিচিত প্যারামিটার সেট ব্যবহার করে ForEach-Object, 1 বাইট সংরক্ষণ করতে), এগুলি বাছাই করে এবং সর্বশেষটি (বৃহত্তম) আউটপুট দেয়।


1

জে, 27 বাইট

>./>#&.>((1,2~:/\[)<;.1])#:

মাইলের উত্তরের দিকে কিছুটা আলাদা (এবং দুর্ভাগ্যক্রমে দীর্ঘতর) পন্থা

ব্যবহার:

    >./>#&.>((1,2~:/\[)<;.1])#:893
5

ব্যাখ্যা

>./>#&.>((1,2~:/\[)<;.1])#:
                         #: Convert to base 2
        (               )   A fork
                       ]    Previous result
         (1,2~:/\[)         Find where each new sequence begins
                   <;.1     Cut the string of integers based on where each sequence begins and box them
    #&.>                    Count under open - open each box and count the items in it
>./>                        Open all the boxes and find the maximum value

আমি এটি বৈধ বলে মনে করি না - এটি কোনও ফাংশন নয় এবং এটি একটি স্নিপেটও।
কনর

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