हर समय एक पैटर्न का पालन करें


13

आपकी नौकरी एक ऐसा प्रोग्राम लिखती है जो हर समय प्रिंट करता है (प्रारूप HH: MM, 24 घंटे) जो निम्न में से किसी भी पैटर्न का पालन करता है:

  • मिनट के बराबर घंटे, उदाहरण के लिए 22: 22,01: 01
  • रिवर्स मिनट के बराबर घंटे, जैसे 10:01, 01:10, 22:22
  • अनुक्रम, वह मैच H: MM या HH: MM, हमेशा HH: MM के साथ मुद्रित होता है। जैसे 00:12, 01:23, 23:45, 03:45, आदि (अंकों के बीच हमेशा एक ही कदम)

नियम:

  • आप अपनी पसंद की कोई भी भाषा चुन सकते हैं
  • आप बार-बार प्रिंट नहीं कर सकते
  • दिन के क्रम के बाद प्रति पंक्ति एक बार
  • विजेता को 5 फरवरी में चुना जाएगा।

पुनश्च: यह मेरा पहला सवाल है, इसमें कुछ विसंगतियां हो सकती हैं। बेझिझक संपादित करें।

PS2: यहां अपेक्षित 44 समाधान हैं (पहले से ही जोश और प्राइमो द्वारा प्रस्तुत, धन्यवाद!)

0:00
0:12
1:01
1:10
1:23
2:02
2:20
2:34
3:03
3:30
3:45
4:04
4:40
4:56
5:05
5:50
6:06
7:07
8:08
9:09
10:01
10:10
11:11
00:12
00:21
00:34
13:13
13:31
14:14
14:41
15:15
15:51
16:16
17:17
18:18
19:19
20:02
20:20
21:12
21:21
22:22
23:23
23:32
23:45

2
मुझे उम्मीद है कि प्रारूप में 3:45लिखा 03:45गया HH:MMहै और इस प्रकार यह अनुक्रम नहीं है।
हावर्ड २

सही! मुझे याद है कि उदाहरण में
RSFalcon7

3
करता है 13:57एक दृश्य के रूप में गिना? किस बारे में 6:54? एक ही नोट 6:42पर भी निर्णय लेने की जरूरत है।
जॉन ड्वोरक

3
केवल एक ही अंक के साथ बार-बार एक अग्रणी शून्य नहीं है जैसे 00:01कि एक अनुक्रम के रूप में गिनती?
जोश

2
@ RSFalcon7 तो केवल कुछ प्रमुख शून्य को अनदेखा किया जाता है? कौन सा? 23:45, 02:34, 00:23, 00:02 इसी तरह के मामले प्रतीत होंगे।
जोआचिम इस्कासन

जवाबों:


4

गोल्फस्क्रिप्ट ( 82 72)

अभी भी बहुत शुरुआत है, लेकिन कोई जीएस जवाब नहीं था, इसलिए ... :)

24,{'0'\+-2>..+\.-1%+}%5,{'0'7,{+}/>4<.(;0\+}%|{2=54<},$);{2/~':'\++}%n*

PHP ऐसा करने में सक्षम नहीं है।
प्रिमो

और सी निश्चित रूप से हरा नहीं पाएंगे।
जोश

4

PHP - 93 बाइट्स

<?for(;24>$h;)@ereg(+$h=&date(i,$i).$m=date(s,$i++),"0123456$h$h".strrev($h))&&print"$h:$m
";

यह पैटर्न की तरह मिल जाएगा 02:34, लेकिन पैटर्न की तरह 00:23या नहीं मिलेगा 00:02। अगर मैं टिप्पणियों में ओपी के स्पष्टीकरण को समझता हूं, तो यह सही है।

कुल 44 परिणाम प्रिंट करता है:

00:00
00:12
01:01
01:10
01:23
02:02
02:20
02:34
03:03
03:30
03:45
04:04
04:40
04:56
05:05
05:50
06:06
07:07
08:08
09:09
10:01
10:10
11:11
12:12
12:21
12:34
13:13
13:31
14:14
14:41
15:15
15:51
16:16
17:17
18:18
19:19
20:02
20:20
21:12
21:21
22:22
23:23
23:32
23:45

4

सी, 118 (शुरुआत में 136)

h,m;main(){h<24&&main(m>57?m=0,h++:h==m|h==m%10*10+m/10|m-12==h*11|h==m-22&!(~-m++%11)&&printf("%02d:%02d\n",h,m-1));}

119 अक्षरों वाला एक पुनरावृत्त संस्करण:

h;main(m){for(;h<24;h++)for(m=0;m<57;m++)h==m|h==m%10*10+m/10|m-12==h*11|h==m-22&!(~-m%11)&&printf("%02d:%02d\n",h,m);}

@Squeamish ossifrage के लिए एक बड़ा धन्यवाद!


1
अब अच्छा होना चाहिए।
जोश

2
मेरा समाधान उन (जैसे 02:34) आउटपुट करता है । नियम m-12==h*11उन्हें पकड़ता है।
जोश २

2
आप बदल सकते 100*h+m==1234||100*h+m==2345के साथ ((m-h)==22)&&!((m-1)%11)(शायद उससे भी कम ब्रैकेट के साथ)
r3mainer

1
जैकपॉट! 128 वर्णों तक वापस जाएं। धन्यवाद!
जोश

1
मेरी समझ में उन दृश्यों को शामिल नहीं करना था जिनके पास केवल एक अंक है जैसे कि 00:01। मैं स्पष्टीकरण के लिए मूल प्रश्न पर पोस्ट करूंगा।
जोश २

2

पायथन (178)

s=sorted
for i in[x for x in['%04d'%i for i in range(2400)if i/10%10<6]if s(x[:2])==s(x[2:])or len({i-ord(y)for i,y in enumerate(x.lstrip('0'))})==1]:print'%2s:%2s'%(i[:2],i[2:])

अनुक्रम से पहले सभी प्रमुख जीरो को स्ट्रिप करना कुल 57 परिणाम देता है।


2

एपीएल (90)

F←{,'ZI2'⎕FMT⍵}⋄↑⊃¨{(F⍺),':',F⍵}/¨Z/⍨{(⍺=⍵)∨(≡/0 1⌽∘F¨⍺⍵)∨∧/¯1=2-/⍎¨(⍕⍺),F⍵}/¨Z←,1-⍨⍳24 60

बस। मैं पर्ल की एक बोली बनाने के लिए तैयार हूँ जहाँ हर कीवर्ड और अधिकांश फ़ंक्शंस एक एकल वर्ण हैं। +1, btw;)
प्रिमो

1

जावास्क्रिप्ट - १as१ वर्ण (५/२/१४)!

for(h='00';+h<24;h=(++h<10?'0':'')+h)for(m='00';+m<60;m=(++m<10?'0':'')+m)if(h[1]+h[0]==m||h==m||+m[1]-m[0]==1&&+m[0]-h[1]==1&&(!+h[0]||+h[1]-h[0]==1))console.log(h+':'+m)

मैं गंभीरता से गोल्फ के हैंग हो रहा हूं। अगर मैं अब पीछे से देखता हूं, तो मैंने लगभग 30 चार्ट काट दिए हैं! जेएसबीएन

अघोषित (और टिप्पणी):

// Note: +'string' is same as 'parseInt(string, 10)'
// Also, this code is not the shortest one, I have purposely made this code longer for
// understanding purposes

for(h = '0'; +h < 24; h = +h + 1 + '') //initialize h(our), loop while it's less than 24
{                                      // increase it by 1 and cast back to string
    for(m = '0'; +m < 60; m= +m + 1 + '') // intialize m(inute), loop while < 60
    {                                  // increase it by 1 and cast back to string
        if(h.length < 2) h = 0 + h;    // if it is '9', convert to '09'
        if(m.length < 2) m = 0 + m;    // if it is '9', convert to '09'

        // Tests for printing
        if(h[0] === m[1] && m[0] === h[1] ||
           h === m ||
           +m[1] - +m[0] === 1 && +m[0] - +h[1] === 1 && (+h[0] === 0 || +h[1] -+ h[0] === 1))
        console.log(h + ':' + m);  // print
    } // inner loop end
}     // outer loop end

187 वर्ण (पुराना) (4/2/14)

for(h='00';+h<24;h=(+h<9?'0':'')+(+h+1))for(m='00';+m<60;m=(+m<9?'0':'')+(+m+1))if(h[0]==m[1]&&m[0]==h[1]||h==m||+m[1]-m[0]==1&&+m[0]-h[1]==1&&(!+h[0]||+h[1]-h[0]==1))console.log(h+':'+m)

थोड़ा सा प्रयोग, और बहुत सुधार (9 वर्ण) :) JSBin

196 वर्ण (पुराना) (3/2/14)

for(h='00';+h<24;h=(+h<9?'0':'')+(+h+1))for(m='00';+m<60;m=(+m<9?'0':'')+(+m+1))if(h[0]==m[1]&&m[0]==h[1]||h==m||+m[1]-m[0]==1&&+m[0]-h[1]==1&&(!+h[0]||+h[1]-h[0]==1))console.log(h+':'+m)

एक नए दिमाग के साथ बैठें और इसमें बहुत सुधार करें, एक लाइनर :) JSBin

208 वर्ण (पुराना) (2/2/14)

for(h='0';+h<24;h=+h+1+''){for(m='0';+m<60;m=+m+1+''){if(h.length<2)h=0+h
if(m.length<2)m=0+m
if(h[0]==m[1]&&m[0]==h[1]||h==m||+m[1]-+m[0]==1&&+m[0]-+h[1]==1&&(+h[0]==0||+h[1]-+h[0]==1))console.log(h+':'+m)}}

44 आवश्यक समय (नई पंक्ति में प्रत्येक) देता है

मेरे कोड में सुधार करते रहेंगे।

मैं किसी भी प्रतिक्रिया की बहुत सराहना करूंगा। धन्यवाद।


अद्यतन हाल ही में !!
गौरांग टंडन

1

पायथन 3, 248 वर्ण

मुझे लगता है कि मैं थोड़ी देर से और साथ ही बहुत अच्छा नहीं हूं, लेकिन आखिरकार, मेरी पहली कोडगॉल्फ बात साझा करने के लिए मिली:

मैंने केवल 01:23 और 23:45 जैसे वास्तविक दृश्यों का समर्थन करने का निर्णय लिया, 00:12 नहीं। वैसे भी, मैं शर्त लगाता हूं कि बेहतर करने के लिए बहुत कुछ है, इसलिए कृपया आगे बढ़ें और मेरे साथ एक टिप्पणी साझा करें।

import itertools as t
s=sorted
r=range
i=int
d='%02d'
e=d+':'+d
print([e%(i(a[0]),i(a[1])) for a in t.product([d% x for x in r(0,24)], [d% x for x in r(0,60)]) if s(a[0])==s(a[1]) or list(a[0]+a[1])==[str(x) for x in r(i(a[0][0]),i(a[1][-1])+1)]])

मेरे pastebin पर इसके साथ बहुत वर्णनात्मक संस्करण मिला


0

डेल्फी

अभी भी इस पर काम कर रहे हैं लेकिन यह वही है जो मैंने अभी तक किया है।
यह काम करता है, लेकिन यह सुनिश्चित करें कि इसे छोटा करने के लिए संभव है।
संपादित करें: 48 बार प्रिंट करता है।

बिना इंडेंट के 422 अक्षर

uses System.SysUtils,DateUtils;var t:TTime;a,b,c,d:integer;s:string;begin t:=StrToTime('00:01');while t<StrToTime('23:59')do begin s:=FormatDateTime('hhnn',t);a:=StrToInt(s[1]);b:=StrToInt(s[2]);c:=StrToInt(s[3]);d:=StrToInt(s[4]);if((a+1=b)and(b+1=c)and(c+1=d))or((a=0)and(b+1=c)and(c+1=d))or((a=0)and(b=0)and(c+1=d))or((a=d)and(b=c))or((a=c)and(b=d))then WriteLn(FormatDateTime('hh:nn',t));t:=IncMinute(t)end;ReadLn;end.

इंडेंट के साथ 557 वाचर

uses
  System.SysUtils, DateUtils;

var
  t:TTime;
  a,b,c,d:integer;
  s:string;
begin
  t:=StrToTime('00:01');
  while t<StrToTime('23:59')do
  begin
    s:=FormatDateTime('hhnn',t);
    a:=StrToInt(s[1]);
    b:=StrToInt(s[2]);
    c:=StrToInt(s[3]);
    d:=StrToInt(s[4]);
    if((a+1=b) and (b+1=c) and (c+1=d)) or
      ((a=0) and (b+1=c) and (c+1=d)) or
      ((a=0) and (b=0) and (c+1=d)) or
      ((a=d) and (b=c)) or ((a=c) and (b=d)) then
      WriteLn(FormatDateTime('hh:nn',t));
    t:=IncMinute(t)
  end;
  ReadLn;
end.

0

क्यू (116)

distinct{t:string 00:00+x;$[(t[0 1]in(t[3 4];t[4 3]))|all 1=1_deltas{"I"$x}each t[0 1 3 4];t;"00:00"]}each til 1440

वृद्धि 00:00 से 23:59, स्ट्रिंग के लिए जाती है, फिर जांच (परीक्षण 1 या 2) या 3

आउटपुट:

("00:00";"01:01";"01:10";"01:23";"02:02";"02:20";"03:03";"03:30";"04:04";"04:40";"05:05";"05:50";"06:06";"07:07";"08:08";"09:09";"10:01";"10:10";"11:11";"12:12";"12:21";"12:34";"13:13";"13:31";"14:14";"14:41";"15:15";"15:51";"16:16";"17:17";"18:18";"19:19";"20:02";"20:20";"21:12";"21:21";"22:22";"23:23";"23:32";"23:45")

0

PHP - 56 39 31 बाइट्स

<? http_redirect("goo.gl/W2M5mo")?>

यह किसी भी तरह से नियमों में नहीं झुकता है। आपको php.ini में pecl_http मॉड्यूल स्थापित और short_open_tag "1" पर सेट करने की आवश्यकता है।


+1, अगर घबराहट के लिए और कुछ नहीं है, हालांकि ऑक्टेव इसे 38 वर्णों पर धड़कता है disp(urlread('http://bit.ly/1fzhb3C')):)
जोआचिम इस्कसन

... यद्यपि आपको संभवतः कस्टम डिज़ाइन किए गए स्थिर HTML पर विचार करना चाहिए जिसे आप स्रोत कोड का एक हिस्सा लोड कर रहे हैं, अन्यथा एक स्थिर फ़ाइल ऐसा करेगी (और उतना ही नहीं गिना जाएगा ...?)
Joachim Isaksson

-7

TI-बेसिक

अपने TI-84 कैलकुलेटर के लिए

DelVar AWhile A<24:A+1→A:Disp A,":",A:End

3
किस तरीके से यह सवाल का जवाब देता है?
हावर्ड २

2
निष्पक्ष होने के लिए प्रश्न कहता है " निम्न पैटर्न में से एक का पालन ​​करें "
डैनी

2
@ डैनी मुझे लगता है कि यह नियमों को बहुत अधिक झुका रहा है, हालांकि।
जॉन ड्वोरक

1
@JDDvorak यह कैसे नियम झुका रहा है ???
टाइमटेक

2
ठीक है ... मुझे उस नियम को व्यक्त करने के अन्य तरीकों के बारे में सोचना चाहिए। मुझे अभी भी यकीन नहीं है कि आपने इसे उद्देश्य से गलत समझा है, लेकिन यह मुझे और साथ ही अब तक के अन्य एवेन्यू के लिए पर्याप्त स्पष्ट लगता है।
जॉन ड्वोरक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.