অঙ্কের তারিখের ব্যাপ্তি


16

দ্রষ্টব্য: যেহেতু আমি নিজে ডাচ, সমস্ত তারিখগুলি dd-MM-yyyyচ্যালেঞ্জের বর্ণনা এবং পরীক্ষার ক্ষেত্রে ডাচ ফর্ম্যাটে।

চ্যালেঞ্জ:

ইনপুট:
শুরুর তারিখ ; শেষ তারিখ ; অঙ্কsen

আউটপুটস: (উভয় পক্ষের অন্তর্ভুক্ত)
মধ্যে থাকা সমস্ত তারিখ , যা তাদের তারিখের মধ্যে পরিমাণের অনন্য সংখ্যা ধারণ করে ।[s,e]n

উদাহরণ:

ইনপুট: প্রারম্ভ তারিখ: 12-11-1991; শেষের তারিখ 02-02-1992:; অঙ্ক:4

আউটপুট:
দিন / মাসের জন্য 0 টি শীর্ষস্থানীয় সহ:

[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]

দিন / মাসের জন্য 0 সেকেন্ড ব্যতীত:

[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]

চ্যালেঞ্জ নিয়ম:

  • ইনপুট এবং আউটপুট তারিখগুলি কোনও যুক্তিসঙ্গত (তারিখ) বিন্যাসে থাকতে পারে। যে কোনও dMyবিন্যাসের স্ট্রিং হিসাবে (alচ্ছিক বিভাজক সহ), তিনটি পূর্ণসংখ্যার তালিকা, আপনার ভাষার নেটিভ ডেট-অবজেক্ট ইত্যাদি হতে পারে আউটপুট একটি তালিকা / অ্যারে / স্ট্রিম, এসটিডিআউটে মুদ্রিত হতে পারে, একটি একক সীমানাঙ্কিত স্ট্রিং ইত্যাদি etc.
  • আপনার আউটপুটগুলিতে আপনাকে দিন / মাসের জন্য নেতৃস্থানীয় 0 টি অন্তর্ভুক্ত বা বাদ দিতে দেওয়া হয়। আপনি নিজের উত্তরে দু'জনের মধ্যে কোনটি ব্যবহার করবেন তা নির্দিষ্ট করুন , কারণ এটি বিভিন্ন ফলাফলের কারণ হবে। অর্থাৎ 1-1-19912 টি অনন্য সংখ্যা রয়েছে তবে 01-01-19913 টি অনন্য অঙ্ক হিসাবে।
  • লিগ বছরগুলি এবং গ্রেগরিয়ান বনাম জুলিয়ান ক্যালেন্ডারগুলির পার্থক্যগুলির সাথে আপনাকে মোকাবেলা করতে হবে না। আপনি ধরে নিতে পারেন যে পরীক্ষার ক্ষেত্রে প্রদত্ত তারিখের সীমাগুলি ফেব্রুয়ারী 28 শে মার্চ / 1 লা মার্চ 4 দ্বারা বিভাজ্য বছরের জন্য কখনও যাবে না।
  • ইনপুট-ডিজিট এর সীমা এ থাকার গ্যারান্টিযুক্ত , সুতরাং সাথে ডিল করা অনির্দিষ্ট করা হয়েছে (খালি তালিকা ফিরিয়ে দেওয়া সবচেয়ে যুক্তিসঙ্গত হবে, তবে ত্রুটি বা ভুল ফলাফল দেওয়াও ঠিক আছে; আপনি জিতেছেন 'ইনপুটটি মোকাবেলা করতে হবে না)।n[1,8]n=0

সাধারণ নিয়ম:

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

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

Inputs: [12-11-1991, 02-02-1992], 4
Outputs with leading 0s:    [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Outputs without leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]

Inputs: [19-09-2019, 30-09-2019], 5
Outputs (same with and without leading 0s): [23-09-2019, 24-09-2019, 25-09-2019, 26-09-2019, 27-09-2019, 28-09-2019, 30-09-2019]

Inputs: [19-09-2019, 30-09-2019], 8
Output (same with and without leading 0s): []

Inputs: [20-06-1749, 30-06-1749], 8
Outputs with leading 0s:    [23-06-1749, 25-06-1749, 28-06-1749]
Outputs without leading 0s: []

Inputs: [10-12-1969, 12-01-1970], 6
Outputs (same with and without leading 0s): [30-12-1969]

Inputs: [10-12-1969, 12-01-1970], 5
Outputs with leading 0s:    [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 02-01-1970, 03-01-1970, 04-01-1970, 05-01-1970, 06-01-1970, 08-01-1970, 12-01-1970]
Outputs without leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 2-1-1970, 3-1-1970, 4-1-1970, 5-1-1970, 6-1-1970, 8-1-1970, 12-1-1970]

Inputs: [11-11-1111, 11-11-1111], 1
Output (same with and without leading 0s): [11-11-1111]

আমি জানি যে এটি এখানে বিশেষভাবে দাবি করা ফর্ম্যাটটি নয়, তবে আমি কেবল "শব্দটি ছড়িয়ে দেওয়ার" জন্য এখানে মন্তব্য করেছি: একটি অভ্যন্তরীণ মান রয়েছে যা প্রোগ্রামারদের তারিখের জন্য ব্যবহার করার চেষ্টা করা উচিত (লগ, ফাইলের নাম ইত্যাদি): en.wikedia.org / উইকি / আইএসও_8601 । (নির্দিষ্ট করার জন্য একটি 'টি' ব্যবহার করে (টি ব্যতীত তারিখ + সময় পুরোপুরি অন্য কিছু হতে পারে) এবং পৃথককারীগুলি ব্যবহার করতে নির্দিষ্ট করে এবং যখন কেউ বিভাজক ব্যবহার করতে না পারে [অর্থাত্ সংক্ষিপ্ত থেকে দীর্ঘ থেকে ভিন্ন রূপের প্রস্তাব দেয়) মান]: প্রধান এক হচ্ছে: YYYY-MM-DDThh:mm:ss.mmm +hh:mm+ HH: মিমি ইউটিসি অফসেট আপনার লোকেল এর সময় হচ্ছে)।
অলিভিয়ের Dulac

উত্তর:


2

জাপট , 23 বাইট

ইউনিক্স টাইমস্ট্যাম্প হিসাবে তারিখের ইনপুটগুলি নেয়, 0আপনার লোকেলের উপর ফর্ম্যাট এবং শীর্ষস্থানীয় নির্ভরশীল স্ট্রিংগুলির একটি অ্যারে আউটপুট দেয় । জাপট ভি 2 এ 1 বাইট সংক্ষিপ্ত হবে তবে Dateবস্তুগুলিকে স্ট্রিংয়ে রূপান্তর করার সময় একটি বাগ রয়েছে বলে মনে হচ্ছে ।

òV864e5@ÐX s7Ãf_¬â ʶWÄ

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

òV864e5@ÐX s7Ãf_¬â ʶWÄ     :Implicit input of integers U=s,V=e & W=n
òV                          :Range [U,V]
  864e5                     :  With step 86,400,000 (24*60*60*1000)
       @                    :Map each X
        ÐX                  :  Convert to Date object
           s7               :  Convert to locale date string
             Ã              :End map
              f             :Filter
               _            :By passing each through the following function
                ¬           :  Split
                 â          :  Deduplicate
                   Ê        :  Length
                    ¶       :  Is equal to
                     WÄ     :  W+1, to account for the inclusion of the delimiting "/" or "-"


3

লাল , 93 বাইট

func[a b n][until[if n = length? exclude d: rejoin[a/4"-"a/3"-"a/2]"-"[print d]b < a: a + 1]]

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

দিন / মাসের জন্য 0s অগ্রণী না করে

খুব খারাপ যে রেড অভ্যন্তরীণভাবে রূপান্তরিত 09-10-2019করে 9-Oct-2019- এজন্য আমাকে পৃথকভাবে দিন / মাস / বছর বের করতে হবে।


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

নিবন্ধন করুন আপাতদৃষ্টিতে বেশ কয়েকটি অপ্রয়োজনীয় শ্বেতস্পেস রয়েছে তবে তাদের টোকেনগুলি পৃথক করার প্রয়োজন। লাল রঙের শব্দ (শনাক্তকারী) এর মধ্যে অন্তর্ভুক্ত থাকতে পারে -=+*<>?!~&, এজন্যই একটি সাদা স্থান (বা (...)[...]"...") প্রয়োজন।
গ্যালেন ইভানভ

2

পাইথন 3.8 (প্রাক রিলিজ) , 84 বাইট

-6 বাইট ধন্যবাদ গ্লোয়িকে

lambda s,e,n:[d for i in range((e-s).days+1)if-len(set(d:=str(s+type(e-s)(i))))==~n]

একটি নামবিহীন ফাংশন যা তিনটি যুক্তি স্বীকার করে এমন স্ট্রিংগুলির তালিকা (শীর্ষস্থানীয় শূন্যগুলি সহ গণনা / সহ) ফিরিয়ে দেয়:

  • s, সূচনা - একটি datetime.dateবস্তু;
  • e, শেষ - একটি datetime.dateবস্তু; এবং
  • n, দিনের সংখ্যা - একটি intবস্তু।

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

দ্রষ্টব্য: ফাংশনটি যেমন datetime.dateবস্তু গ্রহণ করে আমি এর জন্য আমদানি কোডটি গণনা করি নি (এবং datetime.timedeltaএই ইনপুট অবজেক্টগুলির বিয়োগফলের মাধ্যমে পরোক্ষভাবে অ্যাক্সেসযোগ্য হিসাবে বস্তুটি আমদানি করার কাজ করেছি )।


1
type(obj)3 চেয়ে খাটো বাইট obj.__class__
Gloweye

@ গ্লোয়ে আশ্চর্যজনক ধন্যবাদ!
জোনাথন অ্যালান

@ গ্লোয়ে শেষ পর্যন্ত sa টি সাশ্রয় করেন (বিন্দুটি চলে গেছে এবং বন্ধনীগুলি ইতিমধ্যে উপস্থিত রয়েছে)
জোনাথন অ্যালান

1
আমি এখনও সেই গভীরতায় বিশ্লেষণ করিনি, কেবল দেখেছি __class__এবং একটি দ্রুত মন্তব্য করেছি। সাহায্য করতে সর্বদা খুশি।
গ্লোয়

1

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

ইনপুট নেয় হিসাবে (n)(end)(start), যেখানে তারিখগুলি মিলিসেকেন্ডে ইউনিক্স টাইমস্ট্যাম্প হিসাবে প্রত্যাশিত। ফর্ম্যাটে তারিখগুলির একটি স্থান-বিভাজিত তালিকা ফেরত দেয় yyyy-mm-dd

শীর্ষস্থানীয় 0 টি অন্তর্ভুক্ত রয়েছে।

n=>b=>g=a=>a>b?'':(new Set(d=new Date(a).toJSON().split`T`[0]).size+~n?'':d+' ')+g(a+864e5)

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


1
এই স্নিপেট সম্ভবত ব্যর্থ হবে যদি ডিএসটি স্থানান্তরিত ঘটে (একটি + 864e5 সে ক্ষেত্রে আগামীকাল নাও হতে পারে)। তবে ধন্যবাদ, টিও ইউটিসি টাইমজোন ব্যবহার করে যার ডিএসটি নেই। - এমন কোনও ব্যক্তির কাছ থেকে যারা প্রোডাক্ট ওয়েবসাইটে একই যুক্তি ব্যবহার করে এবং ডিএসটি স্থানান্তরিত না হওয়া পর্যন্ত কিছু ভুল বুঝতে পারে ...
tsh

1

পিএইচপি , 90 বাইট

for([,$s,$e,$n]=$argv;$s<=$e;)$n-count(count_chars($d=date(Ymd,86400*$s++),1))||print$d._;

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

এটি শীর্ষস্থানীয় 0 এর সাথে রয়েছে। ইনপুটগুলি হ'ল কমান্ড আর্গুমেন্ট ( $argv) এবং তারিখগুলি দিনগুলিতে ইউনিক্স টাইমস্ট্যাম্প হয় (মূলত স্ট্যান্ডার্ড সেকেন্ড / 86400), আমি এই ফর্ম্যাটটি ব্যবহার করেছি কারণ আমাদের এই চ্যালেঞ্জের সময় প্রয়োজন হয় না এবং এটি আমাকে আরও 1 বাইট গল্ফ করার অনুমতি দেয়। এটি শেষ না হওয়া পর্যন্ত শুরু করতে এক দিন যোগ করে রাখে এবং বিন্যাসে $nআলাদা করে আলাদা আলাদা অঙ্ক সহ কোনও তারিখ মুদ্রণ করে।_Ymd

এছাড়াও একটি 89 বাইট বিকল্প রয়েছে যা ইনপুট হিসাবে একই ফর্ম্যাটে আউটপুট তারিখগুলি মুদ্রণ করে (দিনগুলিতে ইউনিক্স টাইমস্ট্যাম্পস)।


1

জাভা (জেডিকে) , 86 বাইট

(s,e,n)->s.datesUntil(e.plusDays(1)).filter(d->(""+d).chars().distinct().count()==n+1)

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

আমি নেতৃস্থানীয় 0এস ব্যবহার করতে বেছে নিয়েছি ।

ক্রেডিট


1
হয়তো আমি করেছি করা উচিত নয় এটা উভয় প্রান্ত সমেত, তাহলে আপনি জাভা 9 এর ব্যবহার করতে পারতেন datesUntilজন্য 103 বাইট । ;) চমৎকার উত্তর. ব্যক্তিগতভাবে গল্ফ করা যেতে পারে এমন কিছুই আমি দেখছি না।
কেভিন ক্রুইজসেন

1
কেভিন ক্রুইজসেন ভাল, আসলে আপনি গল্ফ করার খুব সুন্দর উপায় দিয়েছেন! কেবল যোগ করুন .plusDays(1)এবং মুছে ফেলুন .forEach(System.out::println)এবং এটি খুব গল্ফযুক্ত উত্তর কারণ আপনি লিখেছেন যে তারিখগুলি মান অবজেক্ট এবং প্রবাহগুলি অনুমোদিত হওয়ার কারণে ফিরে আসতে পারে। ;-) আমার কোনও datesUntilঅস্তিত্বও ছিল না যা বিদ্যমান ছিল! এর জন্য আপনাকে ধন্যবাদ :-)
অলিভিয়ার গ্রাগোয়ার

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

1

রুবি -rdate , 54 বাইট

2 তারিখের অবজেক্ট এবং একটি সংখ্যা ইনপুট হিসাবে নেয় এবং আউটপুট হিসাবে তারিখের অবজেক্টগুলির একটি তালিকা প্রদান করে। লিপ বছরগুলি পরিচালনা করে এবং নেতৃস্থানীয় শূন্যগুলি ব্যবহার করে।

->a,b,n{(a..b).select{|d|d.to_s.chars.uniq.size==n+1}}

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


1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক)

0, 104 , 103 বাইটের নেতৃত্ব ছাড়াই

(s,e,n)=>new int[(e-s).Days+1].Select((x,i)=>s.AddDays(i)).Where(x=>$"{x:yyyMd}".Distinct().Count()>=n)

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

শীর্ষস্থানীয় 0s, 106 105 বাইট সহ

(s,e,n)=>new int[(e-s).Days+1].Select((x,i)=>s.AddDays(i)).Where(x=>$"{x:yyyMMdd}".Distinct().Count()>=n)

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


x =>$"আপনার উভয় সংস্করণে -1 এর জন্য স্থানটি সরাতে পারেন । :)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন আহ ফাক ধন্যবাদ x) আমি নিশ্চিত যে কেউও একটি সংক্ষিপ্ত সমাধান নিয়ে আসতে পারে, আমি এটার সাথে সন্তুষ্ট নই
ইনাত 3 ই

0

কোটলিন, ১১৯ বাইট

fun f(a:LocalDate,b:LocalDate,c:Long)=a.datesUntil(b.plusDays(1)).filter{it.toString().chars().distinct().count()==c+1}

নেতৃস্থানীয় 0 সেঃ ছাড়া, দুই লাগে java.time.LocalDateএবং Longএকটি ফেরৎ Streamএর LocalDateগুলি


হাই, সিসিজিসিতে আপনাকে স্বাগতম! আপনি সম্ভবত একটি যোগ করা যায়নি চেষ্টা অনলাইনে পরীক্ষা কোড সহ লিংক এটি কাজ করে তা যাচাই করতে? এছাড়াও, আমি Kotlin জানি না, কিন্তু এটি প্রতিস্থাপন করা সম্ভব it.toString()সঙ্গে (it+"")কয়েক বাইট সংরক্ষণ করতে? আমি জানি জাভা বা। নেট সি # এর মতো আরও কয়েকটি ভাষায় এটি সম্ভব।
কেভিন ক্রুইজসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.