দ্য টাইম আনগ্রাম


29

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

ইনপুট: ছয় অঙ্ক।

আউটপুট: 24 ঘন্টা বিন্যাসে ( 00:00:00মাধ্যমে 23:59:59) হয় প্রথম বা শেষ বৈধ সময় । (আপনি প্রথম বা শেষ বৈধ সময় আউটপুট নির্ধারণ করুন কিনা তা আপনি নিজেরাই চয়ন করতে পারেন))

উদাহরণ:

ইনপুটগুলি হলে 1,8,3,2,6,4, নিম্নলিখিত সময়গুলি তৈরি করা যেতে পারে:

12:36:48    12:38:46    12:46:38    12:48:36
13:26:48    13:28:46    13:46:28    13:48:26
14:26:38    14:28:36    14:36:28    14:38:26
16:23:48    16:24:38    16:28:34    16:28:43
16:32:48    16:34:28    16:38:24    16:38:42
16:42:38    16:43:28    16:48:23    16:48:32
18:23:46    18:24:36    18:26:34    18:26:43
18:32:46    18:34:26    18:36:24    18:36:42
18:42:36    18:43:26    18:46:23    18:46:32
21:36:48    21:38:46    21:46:38    21:48:36
23:16:48    23:48:16

সুতরাং আমরা হয় 12:36:48বা 23:48:16এই ক্ষেত্রে আউটপুট করব যথাক্রমে প্রথম / শেষ।

চ্যালেঞ্জ বিধি:

  • আপনি নিজের উত্তরে প্রথম বা শেষ বৈধ সময় আউটপুট করুন কিনা তা উল্লেখ করুন।
  • I / O নমনীয়। ইনপুট ছয়টি পৃথক পূর্ণসংখ্যা হতে পারে; ছয় অঙ্ক সহ একটি স্ট্রিং; একটি পূর্ণসংখ্যা তালিকা / অ্যারে; একটি একক (সম্ভবত অষ্টাল) সংখ্যা; ইত্যাদি আউটপুট একটি সঠিক অর্ডার করা তালিকা / অঙ্কের অ্যারে হতে পারে; ফর্ম্যাট HH:mm:ss/ HHmmss/ HH mm ss; এ স্ট্রিং নতুন অঙ্কের ডিলিমিটার দিয়ে মুদ্রিত প্রতিটি অঙ্ক; ইত্যাদি।
  • আপনার পছন্দের যে কোনও ক্রমে আপনাকে ডিজিটগুলি নেওয়ার অনুমতি দেওয়া হয়েছে, যাতে সেগুলি ইতিমধ্যে সর্বনিম্ন থেকে সর্বোচ্চ বা বিপরীতে বাছাই করা যায়।
  • যদি প্রদত্ত অঙ্কগুলি (যেমন 2,5,5,5,5,5) দিয়ে কোনও বৈধ সময় তৈরি করা না যায় তবে আপনি যেভাবে চান তা তাই পরিষ্কার করুন। ফিরে আসতে পারে null/ false; "Not possible"; একটি ত্রুটি সহ ক্রাশ; ইত্যাদি (আপনি আউটপুট মত একটি অবৈধ সময় করতে পারেন না 55:55:52, বা মত অন্য বৈধ সময় 00:00:00।) দয়া করে রাষ্ট্র কিভাবে এটি ইনপুট, যার জন্য কোনো বৈধ সময় তৈরি করা যেতে পারে পরিচালনা করে।
  • সমস্ত সম্ভাব্য বৈধ সময় আপনাকে আউটপুট করার অনুমতি নেই। কেবলমাত্র প্রাথমিক / সর্বশেষতমকে আউটপুট / ফেরত দেওয়া উচিত।
  • 24ঘন্টা (অর্থাত্ 24:00:00) বা 60মিনিট / সেকেন্ডের জন্য (অর্থাত্ 00:60:60) বৈধ নয়। ব্যাপ্তিগুলি [00-23]কয়েক ঘন্টা এবং কয়েক [00-59]মিনিট এবং সেকেন্ডের জন্য।

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার পক্ষে যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজনে একটি ব্যাখ্যা যোগ করুন।

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

Input:          Earliest output:     Latest output:

1,2,3,4,6,8     12:36:48             23:48:16
2,5,5,5,5,5     None possible        None possible
0,0,0,1,1,1     00:01:11             11:10:00
1,1,2,2,3,3     11:22:33             23:32:11
9,9,9,9,9,9     None possible        None possible
2,3,5,5,9,9     23:59:59             23:59:59
1,2,3,4,5,6     12:34:56             23:56:41
0,0,0,0,0,0     00:00:00             00:00:00
1,5,5,8,8,8     18:58:58             18:58:58
1,5,5,5,8,8     15:58:58             18:58:55
1,1,1,8,8,8     18:18:18             18:18:18

1
23:48:16উদাহরণের জন্য একটি বৈধ আউটপুট না ?
টিফিল্ড

আমার কি প্রথম / সর্বশেষ সময় বা উভয়ই আউটপুট করা উচিত?
tsh

কেবলমাত্র একটি কোনটি আপনার উপর নির্ভর করে। দুটি পাইথন উত্তর এতদূর আউটপুট দেয়।
কেভিন ক্রুইজসেন

কোনও "বৈধ সময়" কোনও লিপ সেকেন্ডের জন্য অ্যাকাউন্ট করে না? উদাহরণস্বরূপ, 06:08:60বৈধ হবে, প্রদত্ত যে মিনিটের মধ্যে একটি লিপ দ্বিতীয় হয়েছে?
এরিক আউটগল্ফার

60মিনিট এবং সেকেন্ডের জন্য , এরিকথ আউটগল্ফার নংটি কার্যকর নয়। রেঞ্জ হয় [00-23], [00-59]এবং [00-59]। চ্যালেঞ্জে এটি স্পষ্ট করবে।
কেভিন ক্রুইজসেন

উত্তর:


9

সি (জিসিসি) , 186 174 বাইট

D[7]={0,1,10,100,1e3,1e4,1e5};G(O,L,F,T,I,M,E){if(!F)O=L<24e4&L%10000<6e3&L%100<60?L:1e9;else{for(T=1e9,I=0;I++<F;M=G(O/10,L*10+E,F-1),T=T>M?M:T,O=(O/10)+E*D[F])E=O%10;O=T;}}

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

-12 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ

সম্ভবত অনুকূল নয়, তবে এটি কার্যকর হয়। অদ্ভুতভাবে 7 টি যুক্তিযুক্ত কোনও কারণে টিআইও-তে জিসিসি বাস্তবায়নের প্রয়োজন হয় যে আপনি আসলে সেগুলি সরবরাহ করতে পারেন বা এটি সেগফোল্টস। আমার মেশিনে এটি অপ্রয়োজনীয়।

ফর্ম্যাট: জি (এক্স, 0,6) -> ওয়াই যেখানে এক্স হল এমন 6-সংখ্যার নম্বর যার অঙ্কগুলি ব্যবহার করতে হবে এবং ওয়াই হল 6 সংখ্যার সংখ্যা যা সময় হিসাবে নেওয়া হলে (যথাযথভাবে সন্নিবেশ করে) ন্যূনতম হয়।


2
আমার মনে হয় আপনি গলফ পারেন {0,1,10,100,1000,10000,100000}করতে {0,1,10,100,1e3,1e4,1e5}। এছাড়াও, আপনি গলফ পারেন for(I=0;I<F;++I){E=O%10;M=G(O/10,L*10+E,F-1);T=T>M?M:T;O=(O/10)+E*D[F];}করতে for(I=0;I++<F;M=G(O/10,L*10+E,F-1),T=T>M?M:T,O=(O/10)+E*D[F])E=O%10;, এবং প্রায় বন্ধনী অপসারণ ifঅনলাইনে 174 বাইট ব্যবহার করে দেখুন । এছাড়াও, আমি চাই G(O,L,F,T,I,M,E)। :)
কেভিন ক্রুইজসেন

মজার, আমার মেশিনে ব্যবহার করে ...1e3,1e4,1e5}কাজ হয়নি। পরামর্শের জন্য ধন্যবাদ.
লাম্বদাবেতা

আপনি এই ছেলেটির উত্তরগুলিতে সর্বত্র আছেন, @ সেলিংক্যাট, দারুণভাবে গল্ফ করে।
জাকারি

আমি অন্তর্দৃষ্টি প্রশংসা করি। লোকেরা প্রকৃতপক্ষে উত্তরগুলি পড়ে এবং সেগুলি উন্নত করার জন্য উপায়গুলি খুঁজে বের করে তা দেখতে সর্বদা সুন্দর। :) আপনি এখন তাদের সর্বত্রই রয়েছেন।
লাম্বদাবেতা


6

হাস্কেল , 114 96 86 বাইট

import Data.List
f l=minimum[x|x@[a,b,c,d,e,f]<-permutations l,a:[b]<"24",c<'6',e<'6']

এখন কম কঠোর আউটপুট সঙ্গে। সংখ্যার একটি স্ট্রিং হিসাবে ইনপুট নেয় এবং তালিকার তুলনার সাথে সীমাগুলির বিপরীতে ক্রমের তুলনা করে। কয়েক মিনিট এবং সেকেন্ডের মধ্যে কেবল প্রথম অঙ্কটি পরীক্ষা করা হয়। ক্রমশ এবং জ্বলন যদি কোনও আদেশের সময় বৈধ সময় না থাকে।

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


5

পাইথন 2 , 131 115 112 109 105 88 বাইট

lambda s:min(d for d in permutations(s)if(2,4)>d[:2]>d[4]<6>d[2])
from itertools import*

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

I / O হল পূর্ণসংখ্যার তালিকা

কোনও সময় সম্ভব না হলে একটি ত্রুটি নিক্ষেপ করে


বিকল্প:

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

lambda s:max(d*((2,4)>d[:2]>d[4]<6>d[2])for d in permutations(s))
from itertools import*

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

সর্বশেষ সময় দেয়

অবৈধ সময়ের জন্য একটি খালি টিপল ফেরত দেয়


সংরক্ষিত

  • -21 বাইট, ovs ধন্যবাদ


5

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

নিম্নতম থেকে সর্বোচ্চে বাছাই করা 6 ডিজিটের অ্যারের প্রত্যাশা করে। হয় প্রথম বৈধ সময়ের--সংখ্যার স্ট্রিংটি প্রদান করে, বা falseযদি কোনও সমাধান না থাকে।

f=(a,t='')=>t<24e4&/..([0-5].){2}/.test(t)?t:a.some((v,i)=>s=f(a.filter(_=>i--),t+v))&&s

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

মন্তব্য

আমরা গাণিতিক এবং নিয়মিত প্রকাশ উভয়ই ব্যবহার করে হাইব্রিড পরীক্ষায় উত্তীর্ণ এমন একটি না পাওয়া পর্যন্ত আমরা পুনরায় ইনপুটটির সমস্ত অনুমতিগুলি চেষ্টা করি।

f = (                       // f = recursive function taking
  a, t = ''                 // a[] = input array and t = current time
) =>                        //
  t < 24e4 &                // if t is less than 240000
  /..([0-5].){2}/.test(t) ? // and it matches "hhMmSs" with M and S in [0-5]:
    t                       //   return t
  :                         // else:
    a.some((v, i) =>        //   for each digit v at position i in a[]:
      s = f(                //     save in s the result of a recursive call with:
        a.filter(_ => i--), //       a copy of a[] with the current digit removed
        t + v               //       the current digit appended to t
      )                     //     end of recursive call
    ) && s                  //   end of some(); if truthy, return s

5

জাপট , 17 বাইট

অঙ্কের স্ট্রিং হিসাবে ইনপুট নেয় এবং প্রথম বৈধ সময়কে আউটপুট দেয়; কোনও বৈধ সময় না থাকলে অসীম লুপগুলি।

á
@øXr':}a@ÐX ¤¯8

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

সতর্কতা: অত্যন্ত ধীর - কিছুটা গতি বাড়ানোর *1000জন্য দ্বিতীয়টির পরে যুক্ত করুন X। এবং ভুলে যাবেন না যে একটি অবৈধ ইনপুট একটি অসীম লুপ তৈরি করবে এবং আপনার ব্রাউজারটিকে ক্র্যাশ করতে পারে।


ব্যাখ্যা

                   :Implicit input of string U
á                  :Get all permutations of U
\n                 :Reassign that array to U
      }a           :Loop until true and then return the argument that was passed
        @          :By default that argument is an integer X which increments on each loop so first we'll pass X through a function
         ÐX        :  new Date(X)
            ¤      :  Get the time
             ¯8    :  Slice to the 8th character to get rid of the timezone info
@                  :The function that tests for truthiness
  Xr':             :  Remove all colons in X
 ø                 :  Does U contain the resulting string?

5

রেটিনা , 77 74 69 65 62 বাইট

$
:
6+Lv$`(.)(.*):
$%`$2:$1$%'
O`
0L`([01].|2[0-3])([0-5].){2}

এটি অনলাইন চেষ্টা করুন! আদিতম সময়ের আউটপুট দেয় বা সময় না পাওয়া গেলে খালি স্ট্রিং। সম্পাদনা করুন: ট্যুইনাইটের জন্য 5 8 বাইট সংরক্ষিত ব্যাখ্যা:

$
:
6+Lv$`(.)(.*):
$%`$2:$1$%'

সমস্ত আদেশ তৈরি করুন। :তার পথ যদিও একাধিক বিন্যাসন স্ট্রিং তৈরি হয় কাজ করে, শুরুতে শেষ পর্যন্ত।

O`

সময়গুলিকে ক্রম অনুসারে বাছাই করুন।

0L`([01].|2[0-3])([0-5].){2}

প্রথম বৈধ সময় আউটপুট।


যেহেতু আপনি নিউলাইন-বিভাজিত অঙ্কগুলি আউটপুট করতে পারেন, তাই আপনি 5 বাইট সংরক্ষণ
টোনাটাইট

আপনি এমনকি মুছে ফেলতে পারেন: গ্রেপ পর্যায়ে এটি যেহেতু এটি 6 টি অক্ষরের সাথে মেলে এবং প্রথমটি 0, 1, বা 2 হতে হবে
টুইনাইট

@ টুইনাইট ওহ, গ্রেপ যদি আমার চেয়ে কম হয় তবে যাইহোক আরও 4 টি বাইট সংরক্ষণ করতে পারি।
নিল

ওহ হ্যাঁ আপনি ঠিক করতে পারেনL0
টোনাটাইট

@ টুইনাইট 0Gআসলে।
নিল

4

লাল , 157 124 বাইট

কেভিন ক্রুইজসেনকে ধন্যবাদ আপনাকে আরও সাবধানে পড়ার জন্য মনে করিয়ে দেওয়ার জন্য!

func[s][a: 0:0:0 loop 86400[b: to-string a a: a + 1 if b/1 =#"0"[insert b"0"]if s = sort replace/all copy b":"""[return b]]]

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

ইনপুট হিসাবে বাছাই করা স্ট্রিং নেয়। noneসময় করা সম্ভব না হলে ফিরে আসে ।

ব্যাখ্যা:

f: func[s][                                    ; the argument is a sorted string of digits
    a: 0:0:0                                   ; time object, set to 00:00:00 h 
    loop 86400 [                               ; loop through all seconds in 24 h
        b: to-string a                         ; convert the time to string 
        a: a + 1                               ; add 1 second to the current time   
        if b/1 = #"0" [                        ; prepend "0" if necessary
            insert b "0"                       ; (Red omits the leading 0)
        ]
        if s = sort replace/all copy b ":" ""[ ; compare the input with the sorted time
            return b                           ; return it if they are equal 
        ]
    ]
]

3
Is sortশুরুতে প্রয়োজনীয়? চ্যালেঞ্জের মধ্যে আমি বলেছি: " আপনার পছন্দ অনুযায়ী যে কোনও
ডিজিটগুলি

@ কেভিন ক্রুইজসেন - না, এই ক্ষেত্রে এটি প্রয়োজনীয় নয়। আমি সাজানো ইনপুট দিয়ে কাজ করার সমাধানটি আপডেট করব। ধন্যবাদ!
গ্যালেন ইভানভ

3

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

lambda s:min(x for x in range(62**3)if x%100<60>x/100%100<s==sorted('%06d'%x))

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

আরনাউল্ড একটি বাইট সংরক্ষণ করলেন। ধন্যবাদ!

['1','2','3','4','6','8']সাজানো ক্রমের মতো একটি তালিকা আশা করে :

আপনার পছন্দের যে কোনও ক্রমে আপনাকে ডিজিটগুলি নেওয়ার অনুমতি দেওয়া হয়েছে, যাতে সেগুলি ইতিমধ্যে সর্বনিম্ন থেকে সর্বোচ্চ বা বিপরীতে বাছাই করা যায়।

12364812:36:48 এর মতো একটি পূর্ণসংখ্যা বের করে। আমি এটা গ্রহণযোগ্য আশা করি।


2
আপনি কি 62**3পরিবর্তে ব্যবহার করতে পারেন 240000?
আর্নৌল্ড


3

জাপট , 39 23 বাইট

খুব নিশ্চিত যে এটি করার একটি ছোট উপায় আছে তবে আমি জাপটে তারিখের বিষয়গুলি ব্যবহার করার চেষ্টা করতে চেয়েছিলাম।

á ®¬ò q':Ãf@T<ÐXiSiKÅ
Ì

á                     // Get all permutations of the input array.
  ®¬ò q':à            // [1,2,3,4,5,6] -> "12:34:56"
          f@          // Filter the results, keeping those that
            T<        // are valid dates
              ÐXiSiKÅ // when made into a date object.
Ì                     // Return the last remaining item, if any.

সংখ্যার বাছাই করা অ্যারে হিসাবে ইনপুট নেয়, কোনও অস্তিত্ব না থাকলে সর্বশেষ বৈধ সময় বা খালি আউটপুট দেয়।
10 হারিয়েছেন পাউন্ড ধন্যবাদ বাইট রোমশ

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



@ শেগি ধন্যবাদ, সত্যিই ঝরঝরে। এখনও অবধি আমি জানতাম না যে জাপ্টের তারিখগুলির জন্য পদ্ধতি ডক্সে একটি পৃথক বিভাগ রয়েছে, যা আমার সম্পর্কে বেশ নির্বোধ বোধ করে, আমি বাছাই করে কেবল সেগুলি না পাওয়ার আশেপাশে কাজ করার চেষ্টা করেছি।
নিট

3

রুবি , 68 67 62 56 55 বাইট

->*b{b.permutation.find{|a,b,c,d,e|c<6&&e<6&&a*9+b<22}}

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

ইনপুট: সংখ্যার সাজানো অ্যারে (পূর্ণসংখ্যা হিসাবে)।

আউটপুট: অঙ্কগুলির অ্যারে বা nilসমাধান না পাওয়া গেলে


eval "আমার মনে হয় আপনি স্থানটি ফেলে দিতে পারেন ।
কেভিন ক্রুইজসেন

হ্যাঁ, এটি কাজ করে, ধন্যবাদ।
জিবি

আমি মনে করি আপনি a*9+b<22একটি বাইট জন্য করতে পারেন ।
জয়সি

2

জেলি , 17 বাইট

আমি প্রায় নিশ্চিত যে এটি সবচেয়ে সংক্ষিপ্ত পদ্ধতির নয় ... এটি আবার পরে দেখবে :)

Œ!s2Ḍ<ẠʋÐṀ“ð<<‘ṢḢ

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


আপনি সঠিক, এটি সংক্ষিপ্ত পদ্ধতির নয়। তবে, জনসাধারণের অবমাননা সুন্দর নয়, তাই আমি এখনও উন্নতি নিয়ে মন্তব্য করব না। :)
এরিক আউটগল্ফার

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

আরও সুনির্দিষ্টভাবে বলতে গেলে, আপনি এটি 15 বাইটে করতে পারেন; একটি বাইট সংরক্ষণ করতে, আপনি কিছু তুচ্ছ কিছু করতে হবে; অন্যটিকে বাঁচাতে, এটি তুচ্ছ নয়। মনে মনে, আমি সেই 15-বাইট সংস্করণটি পোস্ট করতে যাচ্ছিলাম তবে এটি আপনার পদ্ধতির ব্যবহার করে। যাইহোক, আপনার স্বাস্থ্য ঠিক আছে?
এরিক আউটগল্ফার

এগিয়ে যান এবং পোস্ট করুন। স্বাস্থ্য ঠিক আছে, আমি কাজ করছি তাই গল্ফ করতে সময় কাটাতে পারি না !!
জোনাথন অ্যালান

পোস্ট. এখন আপনি দেখতে পাচ্ছেন কেন আমি "অপমান" উল্লেখ করছি। : পি
এরিক আউটগল্ফার

2

ওল্ফ্রাম ভাষা (গণিত) , a৩ বাইট

FirstCase[Permutations@#,{a:0|1|2,b_,c_,_,d_,_}/;a*b-4<6>d>=c]&

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

ইনপুট হিসাবে অঙ্কের বাছাই করা তালিকা নেয় । রিটার্নসMissing[NotFound]অবৈধ ইনপুটগুলির জন্য ।

ব্যাখ্যা

Permutations@#

ইনপুটটির ক্রমবিন্যাসের সমস্ত সন্ধান করুন। যেহেতু ইনপুটটি বাছাই করা হয়েছে, তাই গ্যারান্টিযুক্ত যে সমস্ত বৈধ সময় ক্রমবর্ধমান।

FirstCase[ ... ]

মেলে এমন প্রথম তালিকাটি সন্ধান করুন ...

{a:0|1|2,b_,c_,_,d_,_}

প্রথম উপাদান, লেবেলযুক্ত a, 0, 1, বা 2, এবং দ্বিতীয়, তৃতীয় লেবেল এবং পঞ্চম উপাদান b, cএবং dযথাক্রমে ...

... /;a*b-4<6>d>=c

... যেমন যে a*bকম 10, এবং dএবং cকম 6 হয়, সঙ্গে d >= c

কৌতুক যে সব সংখ্যার জন্য নয় 00থেকে 24, দুটি সংখ্যা গুণফল সবচেয়ে 9, এবং সম্ভব অবৈধ নম্বর 25থেকে 29কমপক্ষে 10 গুণফল আছে (যেহেতু আমরা 0, 1, বা 2 হতে প্রথম সংখ্যা বাধ্য)।


2

পাইথ , 37 বাইট

j\:hf&&<shT24<s@T1 60<seT60mcs`Md2S.p

পরীক্ষা স্যুট

ব্যাখ্যা:
j\:hf&&<shT24<s@T1 60<seT60mcs`Md2S.pQ # Code with implicit variables
   h                                   # The first element of
                                   .pQ # The list of all permutations of the input list
                                  S    # Sorted
                           mcs`Md2     # Mapped to three two digit long strings
    f                                  # Filtered on whether
       <shT24                          #  The first number is less than 24
      &      <s@T1 60                  #  AND the second number is less than 60
     &               <seT60            #  AND the third number is less than 60
j\:                                    # Joined by a colon

2

পার্ল 5 সঙ্গে -palF, 73 বাইট

$"=",";($_)=grep@F~~[sort/./g]&/([01]\d|2[0-3])([0-5]\d){2}/,glob"{@F}"x6

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

আউটপুট পছন্দ HHmmssআউটপুটগুলি অবৈধ এন্ট্রিগুলির জন্য ফাঁকা রেখার এবং আউটপুট দেয়।

আমি সম্প্রতি করা প্রতিটি উত্তর globক্রমানুসারে আইং ব্যবহার করেছে ... অদ্ভুত!


2

বাশ + জিএনইউ সেড, 83 , 72 , 69 বাইট

  • 6 পৃথক যুক্তি হিসাবে ইনপুট গ্রহণ করে;
  • প্রারম্ভিক সময় (যদি পাওয়া যায়) ফেরত দেয়;
  • কোনও বৈধ সমন্বয় না থাকলে কিছুই (খালি আউটপুট) দেয় না Return

seq 0 86399|sed "s/^/date +%T -ud@/e;h;`printf s/%d//\; $@`/\w/d;x;q"

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

GNU-sed e (xecute) কমান্ড + ব্যবহার করে 0 থেকে 86399 রেঞ্জের টাইমস্ট্যাম্পগুলির জন্য সমস্ত সম্ভাব্য সময়ের স্ট্রিংগুলি প্রাক উত্পন্ন করুন date

%seq 0 86399|sed "s/^/date +%T -ud@/e;h;"

00:00:00
00:00:01
...
23:59:59

sedপ্রতিটি ইনপুট ডিজিটের জন্য 6 অনুক্রমিক প্রতিস্থাপন কমান্ড সহ স্ক্রিপ্ট তৈরি করুন।

%echo sed `printf s/%d//\; $@`

sed s/1//;s/2//;s/3//;s/4//;s/6//;s/8//;

তারপরে, বিকল্প প্রয়োগ করুন, কোনও ইনপুট লাইনগুলি সরিয়ে ফেলুন যার মধ্যে কমপক্ষে এক অঙ্ক বাকি রয়েছে, প্রথম ম্যাচিং লাইনটি মুদ্রণ করুন (আসল টাইম স্ট্রিংটি হোল্ড স্পেসের সাহায্যে হোল্ড স্পেস থেকে বের করা হবে) x )।

%echo 23:45:12|sed 's/1//;s/2//;s/3//;s/4//;s/6//;s/8//;'
:5:2 //non-matching, delete

%echo 12:36:48|sed 's/1//;s/2//;s/3//;s/4//;s/6//;s/8//;'
:: //matching, print and stop

পরীক্ষা

%./timecomb 1 2 3 4 6 8
12:36:48
%./timecomb 2 5 5 5 5 5
%./timecomb 0 0 0 1 1 1
00:01:11
%./timecomb 1 1 2 2 3 3
11:22:33
%./timecomb 9 9 9 9 9 9
%./timecomb 2 3 5 5 9 9
23:59:59
%./timecomb 1 2 3 4 5 6
12:34:56
%./timecomb 0 0 0 0 0 0
00:00:00
%./timecomb 1 5 5 8 8 8
18:58:58
%./timecomb 1 5 5 5 8 8
15:58:58
%./timecomb 1 1 1 8 8 8
18:18:18

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


2

কোটলিন , 396 391 389 বাইট

কীভাবে এটি আরও ছোট করা যায় তার কোনও ক্লু নেই। আমি ভাবছি এটি যা সম্ভব তার দ্বিগুণ। প্রারম্ভিক সময় উত্পাদন। কেভিনকে 7 বাইটের জন্য ধন্যবাদ!

fun p(d:Array<Int>)={val s=Array(6,{0})
val f=Array(6,{1>0})
val t=Array(3,{0})
val o=Array(3,{60})
fun r(i:Int){if(i>5){var l=0>1
var e=!l
for(p in 0..2){t[p]=s[p*2]*10+s[p*2+1]
l=l||(e&&t[p]<o[p])
e=e&&t[p]==o[p]}
if(t[0]<24&&t[1]<60&&t[2]<60&&l)for(p in 0..2)o[p]=t[p]}
else
for(p in 0..5)if(f[p]){f[p]=0>1
s[i]=d[p]
r(i+1)
f[p]=1>0}}
r(0)
if(o[0]>23)0
else "${o[0]}:${o[1]}:${o[2]}"}()

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


2
আমি কোটলিনকে চিনি না, তবে আপনার কি সত্যই উভয়ের দরকার আছে var l=0>1এবং var e=1>0? এছাড়াও, কেন l=lএবং e=eপ্রয়োজনীয়? দুটি জিনিস গলফ কাজ বলে মনে হচ্ছে হয় var e=1>0জন্য var e=!lআগে স্থান সরানোর "None"। এছাড়াও, যে কোনও মিথ্যা-আউটপুট জরিমানা করা যায়, তাই ন্যায়বিচারও "None"হতে পারে 0
কেভিন ক্রুইজসেন

@ কেভিন 5 টি বাইটের জন্য আপনাকে ধন্যবাদ হতবাক আমি তাদের একটি মিস করেছি। যেহেতু আমি লুপটি বাতিল করছি না, তাই দুটি সময় সমান হয়েছে কিনা তা জানার জন্য আমি আর যাইহোক দেখতে পাচ্ছি না যাতে আমি সিদ্ধান্ত নিতে পারি যে নতুনটি কম less আমি বেশ কয়েকটি উপায়ে কোড দিয়েছি এবং এটি সংক্ষেপে শেষ হয়েছে। তবে সামগ্রিক কোডটি আমার চেয়ে অনেক বড়।
ওয়েলস

1
আপনার সর্বশেষ সংস্করণে গল্ফের আরও 2 বাইট: সঠিক "0"হতে পারে0
কেভিন ক্রুইজসেন

@ কেভিন যে স্ট্রিং টাইপ হবে না এবং আমাকে যুক্ত করতে হবে: স্ট্রিং এবং ইন্ট উভয়ের জন্য মঞ্জুরি দেওয়ার জন্য যে কোনও।
ওয়েলস

1
হ্যা ঠিক আছে. যদিও এটি টিআইওতে কাজ করে এবং তবুও 0ত্রুটিগুলি ছাড়াই মুদ্রণ করে .. এবং আপনার বর্তমান ফাংশনটি আমি যতদূর বলতে পারি রিটার্ন-টাইপ নির্দিষ্ট করে না, তাই এটি কীভাবে পরিষ্কারভাবে কোনও বস্তু হিসাবে ফিরে আসবে না? পিএস: আমি কোটলিনকে মোটেও জানি না, কেবল উদ্ধৃতি ব্যতীত এটি চেষ্টা করেছিলাম এবং ফলাফলগুলি একই ছিল। ;) হতে পারে অন্য কোনও কারণে এটি কাজ করছে না, যা আমি অবগত নই।
কেভিন ক্রুইজসেন

2

এমএটিএল , 31 30 বাইট

Y@3Xy[X1]X*!Y*t[4XX]6*<!AY)1Y)

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

ইনপুটটি 6 টি পূর্ণসংখ্যা, আউটপুট হ'ল ন্যূনতম ঘন্টা, মিনিট এবং সেকেন্ডে একটি অ্যারে। ইনপুটগুলির জন্য ক্র্যাশ যেখানে এমন কোনও সময় সম্ভব হয় না।

(-১ বাইট @ লুইস মেন্ডোকে ধন্যবাদ।)


আমার মনে হয় আপনি প্রতিস্থাপন করতে পারেন 2&Aদ্বারা !A, কারণ বাইনারি ম্যাট্রিক্স একটি সারিতে ভেক্টর হতে হবে না
লুইস Mendo


1

স্ট্যাক্স , 15 বাইট

╝a╣=→aá≈#8(⌂≈58

এটি চালান এবং এটি ডিবাগ করুন

এটি ইনপুট জন্য বাছাই অঙ্কের একটি স্ট্রিং লাগে। এটি প্রথম ক্রম ফেরৎ দেয় যা কয়েকটি মানদণ্ডকে সন্তুষ্ট করে।

  • অভিধান "24" এর চেয়ে কম
  • তিনটি জোড়ের অক্ষর ডিক্সিকোগ্রাফিকভাবে "6" এর চেয়ে কম

1

রেটিনা , 58 47 বাইট

+,V^2`[0-5][6-9]{2}
G`([01].|2[0-3])([0-5].){2}

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

সাজানো ক্রমে ইনপুটটি 6 ডিজিট। আউটপুটটি প্রাথমিকতম বৈধ সময়ের প্রতিনিধিত্বকারী 6 টি সংখ্যা বা বৈধ সময় না থাকলে খালি স্ট্রিং।

সম্পাদনা: আমি একজন বোকা, -9 বাইট

ব্যাখ্যা

অ্যালগরিদম

বংশবৃদ্ধির জন্য, আসুন একটি কম সংখ্যা 0-5 হিসাবে এবং একটি উচ্চ সংখ্যা 6-9 হিসাবে সংজ্ঞায়িত করি।

প্রথমে অঙ্কগুলি পুনর্বিন্যাস করুন যাতে প্রতিটি অবস্থানের "নিম্ন-নেস" বা "উচ্চ-নেস" সঠিক হয়। ইনপুটটিতে প্রতিটি উচ্চ সংখ্যার জন্য সঠিক ব্যবস্থা:

# of highs  arrangment
0           LLLLLL
1           LLLLLH
2           LLLHLH
3           LHLHLH
4+          Not possible

যেহেতু যে কোনও পুনর্বিন্যাসটি ইনপুটটিতে চূড়ান্ত চেকটি ব্যর্থ করবে 4+ উচ্চ সংখ্যা রয়েছে, তাই আমরা সেই ক্ষেত্রে সম্পূর্ণ উপেক্ষা করতে পারি।

তারপরে, নিম্ন এবং উচ্চগুলি পৃথকভাবে সাজান। পুনর্বিন্যাসের সাথে একত্রিত করুন, এটি সর্বনিম্ন মান দেয় যা মিনিট এবং দ্বিতীয় সীমাবদ্ধতাগুলি পূরণ করে। সুতরাং এটির প্রাথমিকতম বৈধ সময় দেয়, যদি একটি বিদ্যমান থাকে।

অবশেষে, আমাদের বৈধ সময় আছে কিনা তা পরীক্ষা করে দেখুন। যদি তা না হয় তবে স্ট্রিংটি বাতিল করুন।


কার্যক্রম

+,V^2`[0-5][6-9]{2}

এতে LHH(হয়ে ওঠে HLH) প্রথম দুটি অঙ্ক মিলে যায় এবং অদলবদল করে এবং আর না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করেLHH অস্তিত্ব । এটি সঠিক ব্যবস্থা দেয়।

আসলে, আমি মিথ্যা বললাম। কোনও বাছাইয়ের প্রয়োজন নেই কারণ 1) অদলবদল কেবল সংলগ্ন অঙ্কগুলির মধ্যে হয় এবং কেবল একটি নিম্ন এবং উচ্চের মধ্যে হয়; এবং 2) ইনপুটটি বাছাই করা হয়। সুতরাং নিম্ন এবং উচ্চগুলি পৃথকভাবে সাজানো ক্রমে রয়েছে।

G`([01].|2[0-3])[0-5].[0-5].

কেবলমাত্র স্ট্রিংটি বৈধ সময় হলে রাখে

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