নির্দিষ্ট সময়ের জন্য, জোকারগুলি ব্যবহার করে তারিখের ক্ষুদ্রতম তালিকা পাওয়া


13

ফর্ম্যাট করা একটি তারিখ বিবেচনা করুন YYYY-MM-DD। আপনি *তারিখের স্ট্রিংয়ের শেষে জোকারটি ব্যবহার করতে পারেন । যেমন 2016-07-2*থেকে সমস্ত তারিখ বর্ণনা 2016-07-20করে 2016-07-29

এখন, একটি শুরুর তারিখ এবং শেষের তারিখ দ্বারা প্রতিনিধিত্ব করা একটি সময় বিবেচনা করুন।

অ্যালগরিদম অবশ্যই পিরিয়ড প্রতিনিধিত্ব করার তারিখগুলির মধ্যে সবচেয়ে ছোট সম্ভাব্য তালিকা খুঁজে পেতে হবে।

এর একটি উদাহরণ ব্যবহার করা যাক। নিম্নলিখিত সময়ের জন্য:

  • শুরুর তারিখ: 2014-11-29
  • শেষ তারিখ: 2016-10-13

অ্যালগরিদম অবশ্যই নিম্নলিখিত তারিখের তালিকা সহ একটি অ্যারে ফেরত পাঠাতে হবে:

  • 2014-11-29
  • 2014-11-30
  • 2014-12-*
  • 2015-*
  • 2016-0*
  • 2016-10-0*
  • 2016-10-10
  • 2016-10-11
  • 2016-10-12
  • 2016-10-13

1
বিজয়ী উদ্দেশ্য (গুলি) অস্পষ্ট। আমি এটিকে কোডগল্ফে পরিবর্তন করার পরামর্শ দিচ্ছি (অর্থাত্ সম্ভব খুব কম বাইটে টাস্কটি সমাধান করুন) এবং সর্বদা তারিখের ক্ষুদ্রতম তালিকার আউটপুট দেওয়ার উত্তর প্রয়োজন।
বিলিউব

সম্ভবত এটির জন্য এটি সর্বোত্তম সাইট নয়, এটি "মজাদার জন্য" একটি চ্যালেঞ্জের চেয়ে আরও একটি প্রশ্ন (যেমন "" আমি রেলি অন রেলগুলিতে এই অ্যালগরিদমটি পাই না ") is আমি বরং এখানে নতুন ...
রাফেল

আমি আপনাকে স্ট্যাকওভারফ্লো চেষ্টা করে দেখুন এবং তারপরে এটিকে চ্যালেঞ্জের চেয়ে প্রশ্ন হিসাবে জিজ্ঞাসা করুন। যদি পুনরায় জমা দেওয়া হয় তবে চ্যালেঞ্জটি এখনও আমার মতে আকর্ষণীয় এবং একটি সুযোগের যোগ্য (কোড গল্ফ হিসাবে)।
বিলিওব

6
হ্যাঁ, আমি মনে করি অ্যালগরিদমটি খুঁজে পাওয়া এখনও মজাদার এবং চ্যালেঞ্জিং, তবে আমি কোড-গল্ফের পক্ষে আগ্রহী ছিলাম না ... ভাল আমি এটি পুনরায় চাপিয়ে দিয়েছি, ট্যাগগুলি পরিবর্তন করেছি এবং এখন এই পোস্টটি অনুসরণ করার পরে আমি স্ট্যাকওভারফ্লো জিজ্ঞাসা করব। ধন্যবাদ!
রাফেল

1
ফলো-আপ: আমি গতকাল Stackoverflow পোস্ট, কিন্তু আজ আমি রুবি একটি সক্রিয় কোড ছিল (এটা নয় "jokerize" মাসের না, কিন্তু কাজ প্রায় হয়ে): stackoverflow.com/questions/40506639/...
রাফায়েল

উত্তর:


1

পিএইচপি, 541 343 বাইট

আমি প্রথমত অ্যালগরিদমকে কাজ করতে চাইছিলাম; তবে এটি গল্ফ করা আসলে আমার প্রত্যাশার চেয়ে অনেক বেশি মজাদার ছিল (বিশেষত সমর্থিত তারিখ এবং সময় ফর্ম্যাটগুলি ব্রাউজ করা )।

তিনটি বড় ক্রিয়া প্রায় 130 বাইট সংরক্ষণ করেছে; তবে মাইনর গল্ফিংয়ের 70 বাইটগুলি
(এটি বৃহত্তর পদক্ষেপের একটিকেও অপ্রচলিত উপস্থাপন করেছিল) প্রচুর মজা নিয়েছিল ।

for($a=($f=strtotime)($argv[1]);!$p=$a>$z=$f($argv[2]);$a+=86400){$x=$z<$e=$f(Dec31,$a);(101<$q=date(md,$a))?$q-1001|$x?:$a=$e+$p="1*":($x?($t=$f(IX30,$a))>$z?:$a=$t+$p="0*":$a=$e+$p="*");$p?:($q%100>1|$z<($t=$f(date(Ymt,$a)))?$q%10>0&$q%100>1|$z<($t=min($t,$a+777600))?:$a=$t+$p="m-$q[2]*":$a=$t+$p="m-*");echo date("Y-".($p?:"m-d"),$a),"
";}

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়। এটি দিয়ে চালান -nrবা এটি অনলাইনে পরীক্ষা করুন

মন্তব্য

  • Y-m-3*জন্য প্রিন্ট Y-m-30; ঠিক করতে 7 বাইট যুক্ত করুন: |$a==$tপরে sert োকান 777600))
  • পিএইচপি 7.1 এ সতর্কতা ছুড়ে দেয়; ফিক্স 5 বাইট যোগ করুন: প্রতিস্থাপন +$pসঙ্গে +!$p
  • একটি ব্রেকডাউন এবং ব্যাখ্যা করা কিছু গল্ফিং পোস্ট করার জন্য প্রস্তুত;
    তবে আমি আরও কিছু অপেক্ষা করার জন্য আমার ক্ষতি করার আগে কেউ জমা দিয়েছে কিনা তা দেখার জন্য।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.