পরবর্তী "আকর্ষণীয়" সময়টি সন্ধান করুন


9

আমি আজ আমার ঘড়িতে একদম ঠিক ১১:১১:১১ এ এক নজরে এসেছি (এবং আজকের দিনটি 1/11; খুব খারাপ এটি ২০১১ নয়), এবং এটি আমাকে ভাবতে পেরেছিল: আমি জানি! আমি এই থেকে একটি কোড গল্ফ প্রশ্ন করা উচিত! আমি ডার্ক

যাইহোক, আপনার চ্যালেঞ্জটি হ'ল ইনপুট হিসাবে এক ঘন্টা, মিনিট এবং দ্বিতীয় গ্রহণ করা এবং পরবর্তী "আকর্ষণীয়" সময় আউটপুট। এখানে, আমি এই পদক্ষেপগুলি হিসাবে আকর্ষণীয় সংজ্ঞায়িত করব:

  1. ঘন্টা, মিনিট এবং দ্বিতীয়টি সংঘবদ্ধ করুন। (উদাহরণস্বরূপ, 4:14:14 এ, এটি হবে 41414.)
  2. এক, দুই, বা তিনটি ক্রমাগত গোষ্ঠীর জন্য পরীক্ষা করুন যা পুরো স্ট্রিংয়ের দৈর্ঘ্য বিস্তৃত। উদাহরণস্বরূপ, আমি [41][41][4]উদাহরণ সময়ে খুঁজে পেতে পারি (গ্রুপটি যদি স্ট্রিংয়ের মাধ্যমে পৌঁছতে না পারে তবে আমি যেমন এই উদাহরণটি দিয়েছিলাম ঠিক তেমন এটি কেটে ফেলুন)। আরেকটি উদাহরণ: প্রশ্ন শুরুতে আমার প্রথম উদাহরণে সময়, এটি হবে [1][1][1][1][1][1], [11][11][11]অথবা [111][111]
  3. এমন কোন ধারাবাহিক দল রয়েছে যা পুরো স্ট্রিংয়ের মধ্য দিয়ে যায়? যদি তা হয় তবে সময়টি "আকর্ষণীয়!" অন্যথায়, এটি না।

ইনপুটটি কোনও যুক্তিসঙ্গত ফর্ম্যাটে হতে পারে তবে এটি হার্ডকোড করা উচিত নয়। আউটপুটটি কোনও যুক্তিসঙ্গত বিন্যাসেও হতে পারে , এবং এটি ইনপুট হিসাবে একই ফর্ম্যাটে থাকা প্রয়োজন।

আপনি যদি কোনও কারণে নেটওয়ার্ক অ্যাক্সেস ব্যবহার করেন তবে নেটওয়ার্ক থেকে আপনার স্কোর পর্যন্ত সমস্ত বাইট ডাউনলোড করা হবে

এই ; বাইটস মধ্যে সংক্ষিপ্ত কোড।


1
এটি জানুয়ারী, নভেম্বর নয়: পি
অস্থিরতা

@ ভোলাটিলিটি ওফস, টাইপো :
ডোরকনব

1
আমি নেটওয়ার্ক অ্যাক্সেস সীমাবদ্ধতা পছন্দ করি।
কাইল কানোস

1
কোডটি কি কেবল 12 ঘন্টার সময় বিবেচনা করে? উদাহরণস্বরূপ, ২৪ ঘন্টা ঘড়িতে 14:14:14 একটি আকর্ষণীয় সময় হতে পারে তবে 12 ঘন্টাের ঘড়িতে এত আকর্ষণীয় হবে না (2:14:14)
কেভিন অ্যান্ডারসন

উত্তর:


2

জে, 113 99 90

সম্ভবত এখনও বেশ গল্ফযোগ্য।

f=:t#:[:(>:^:([:(3&g+:2&g=.[:*/]=(]$)${.)@(":@{.,3}.7":100#.1,])t#:])^:_)1+(t=.24,2$60)#.]

(h m s)ইনপুট হিসাবে একটি ভেক্টর নেয় এবং আউটপুট হিসাবে একই বিন্যাসে একটি ভেক্টর প্রদান করে।

উদাহরণ:

   f 0 0 0
0 1 0
   f 4 14 14
4 14 41
   f 23 59 59
0 0 0
   f 3 14 15
3 14 31

1

হাস্কেল - 227223

এটি করার একটি উপায়।

    import Data.List
e _ []=False
e f s=let (h,t)=f s in t`isPrefixOf`h||h`isPrefixOf`t&&e f t
i [a,b,s]=head[t|s<-[s+1..],f<-map splitAt[1..3],let m=b+s`div`60;h=a+m`div`60;t=[h`mod`24,m`mod`60,s`mod`60],e f$concatMap show t]

উদাহরণ

λ: i [11,11,11]
[11,21,1]
λ: i [4,14,14]
[4,14,41]

আপনি একটি নমুনা রান পোস্ট করতে পারেন? আমি হাস্কেল সম্পর্কে নিখুঁত তাই ইনপুট / আউটপুট কীভাবে কাজ করে ইত্যাদি সম্পর্কে আমার কোনও ধারণা নেই :
ডোরকনব

1

গণিত 125

F=Do[#~MatchQ~{#〚-1〛..,_}&&Break@#&@Partition[(i=IntegerDigits)@f[n~i~60,100],m,m,1,a_],
{n,#~(f=FromDigits)~60+1,7^6},{m,3}]&

এটি পরবর্তী আকর্ষণীয় সময়ের একটি নিদর্শন দেয়:

F@{11, 11, 11}
F@{4, 14, 14}

{{1, 1, 2}, {1, 1, 2}

{{4, 1, 4}, {4, 1, এ_}

a_ সময়ের শেষ চিহ্নিত করে।


1

অ্যাপ্লিকেশন Lua

আমি চারটি ভিন্ন সমাধান পেয়েছি, কারণ কিছু প্রয়োজনীয়তার বিষয়ে আমি নিশ্চিত ছিলাম না।

সংস্করণ 1: 0 টি অপসারণ, কমান্ড লাইন ইনপুট পাশাপাশি ওএসটাইম () ব্যাকআপ (315)

ন্যূনতম:

z=arg if z[1] then y={hour=z[1],min=z[2],sec=z[3],day=1,month=1,year=1}end h,g,e,u=os.date,os.time(y),":",tonumber while 1 do g=g+1 b,c,d=u(h("%H",g)),u(h("%M",g)),u(h("%S",g)) a=b..c..d for x=1,#a/2 do p=1 for _ in a:gmatch(a:sub(1,x))do p=p+1 if p>math.ceil(#a/x) then print(b..e..c..e..d)return 1 end end end end

মন্তব্য সহ সম্পূর্ণ সংস্করণ:

z=arg if z[1] then y={hour=z[1],min=z[2],sec=z[3],day=1,month=1,year=1}end --get command line arguments
h,g,e,u=os.date,os.time(y),":",tonumber --set up references, if command line arguments accepted use y else use current time
while 1 do
    g=g+1
    b,c,d=u(h("%H",g)),u(h("%M",g)),u(h("%S",g)) --get HH:MM:SS seperately (which allows removal of the zeroes with tonumber())
    a=b..c..d  --concat
    for x=1,#a/2 do  --check up to half of the string
        p=1
        for _ in a:gmatch(a:sub(1,x))do --for each match
            p=p+1  --count number of matches
            if p>math.ceil(#a/x) then print(b..e..c..e..d)return 1 end --if matches span entire string, cheer (and print in a pretty format)
        end
    end
end

অন্যান্য সংস্করণগুলি খুব অনুরূপ, তাই আমি কেবল সর্বনিম্ন সংস্করণগুলি পোস্ট করব:

সংস্করণ 2: কোনও কমান্ড লাইন ইনপুট নেই (239)

h,g,e,u=os.date,os.time(),":",tonumber while 1 do g=g+1 b,c,d=u(h("%H",g)),u(h("%M",g)),u(h("%S",g)) a=b..c..d for x=1,#a/2 do p=1 for _ in a:gmatch(a:sub(1,x))do p=p+1 if p>math.ceil(#a/x) then print(b..e..c..e..d)return 1 end end end end

সংস্করণ 3: কমান্ড লাইন ইনপুট সহ কোনও 0 অপসারণ (240)

z=arg if z[1] then y={hour=z[1],min=z[2],sec=z[3],day=1,month=1,year=1}end h,g=os.date,os.time(y) while 1 do g=g+1 a=h("%H%M%S",g) for x=1,3 do p=1 for _ in a:gmatch(a:sub(1,x))do p=p+1 if p>6/x then print(h("%T",g))return 1 end end end end

সংস্করণ 4: অভিনব জিনিসগুলির মধ্যে কোনওটিই নেই (কোনও 0 অপসারণ বা কমান্ড লাইন ইনপুট) (164)

h,g=os.date,os.time() while 1 do g=g+1 a=h("%H%M%S",g) for x=1,3 do p=1 for _ in a:gmatch(a:sub(1,x))do p=p+1 if p>6/x then print(h("%T",g))return 1 end end end end

ব্যবহারের নির্দেশাবলী

একটি টার্মিনালে, চালান (সংস্করণ 1 এবং 3)

lua interesting.lua HOURS MINUTES SECONDS

বা শুধু

lua interesting.lua

আপনি যদি এটি চান তবে এটি সিস্টেমের ঘড়িটি বন্ধ করে দেবে।

বৈশিষ্ট্য সম্পূর্ণতার জন্য কোনও পুরষ্কার আছে? : P: P

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