সংক্ষিপ্ত ক্রমবর্ধমান পূর্ণসংখ্যার ক্রম প্রসারিত করুন


18

সংক্ষিপ্তবৃদ্ধি পূর্ণসংখ্যার ক্রমের আকারে সংখ্যার তালিকার একটি ইনপুট দেওয়া হয়েছে, ক্রমটি পুরোপুরি আউটপুট।

সাধারণভাবে সংক্ষেপে বৃদ্ধি পূর্ণসংখ্যা ক্রম বিন্যাস প্রতি NUMBER খোঁজার করে কাজ করে এন সংখ্যা এটি পূর্ববর্তী, কম সংখ্যায় মি । সঙ্গে ডিজিটের নম্বর হিসাবে এন , গত টি সংখ্যা মি সব সংখ্যায় প্রতিস্থাপিত হয় এন । এখানে একটি উদাহরণ ইনপুট:

123 45 6 7 89 200

প্রতিস্থাপনের নিয়ম প্রয়োগ করে, আমরা প্রথমে 45 কে 145 এ পরিণত করি কারণ 45 <123:

123 145 6 7 89 200

বারবার একই নিয়ম প্রয়োগ করা, এটি হয়ে যায়:

123 145 146 7 89 200
123 145 146 147 89 200
123 145 146 147 189 200

ক্রমটি এখন বাছাই করা হয়েছে (নিয়মটি প্রয়োগ করার জন্য কোনও সংখ্যা নেই), সুতরাং এটি চূড়ান্ত আউটপুট।

আপনি এটা ধরে নিতে পারেন

  • শর্টহ্যান্ড স্বরলিপি সর্বদা ব্যবহৃত হয় যখন সম্ভব। উদাহরণস্বরূপ, ইনপুট 12 3কখনই হবে 12 13

  • একই সংখ্যার অঙ্ক বাকী থাকাকালীন সংখ্যা কখনই হ্রাস পাবে না। উদাহরণস্বরূপ, ইনপুট কখনই হবে না 333 222

  • শর্টহ্যান্ড নিয়ম প্রয়োগের ফলে কখনই এমন সংখ্যার ফলাফল হবে না যা ক্রমের আগের সংখ্যার তুলনায় এখনও কম। উদাহরণস্বরূপ, ইনপুট কখনই হবে না 123 12

  • সংখ্যাগুলি সর্বদা ইতিবাচক পূর্ণসংখ্যার হতে পারে এবং এর মধ্যে লিডিং 0 টি কখনই থাকে না (যদি স্ট্রিং ফর্ম্যাট ব্যবহার করা হয়)।

  • পূর্ণ, প্রসারিত ক্রমটি কখনই সদৃশ সংখ্যা ধারণ করে না। (তবে, শর্টহ্যান্ড ক্রমটি হতে পারে; প্রাক্তন 10 1 20 1-> 10 11 20 21))

  • ইনপুটটিতে কমপক্ষে একটি নম্বর থাকবে।

ইনপুট এবং আউটপুট হ'ল হয় সংখ্যা / স্ট্রিংয়ের তালিকা / অ্যারে বা কোনও অ-অঙ্ক দ্বারা পৃথককৃত উপাদানগুলির সাথে একক স্ট্রিং।

যেহেতু এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতবে।

বিকল্প লাইনে ইনপুট এবং আউটপুট সহ পরীক্ষার কেসগুলি:

1 2 3 10 1 2 20 5 100 200 10 3 5 26 9 99 999 9999
1 2 3 10 11 12 20 25 100 200 210 213 215 226 229 299 999 9999
223 1184 334 441 5 927 2073 589 3022 82 390 5 9
223 1184 1334 1441 1445 1927 2073 2589 3022 3082 3390 3395 3399
5 10 5 20 5 30 5 40 5 50 5
5 10 15 20 25 30 35 40 45 50 55
7 8 9 70 80 90 700 800 900 7000 8000 9000
7 8 9 70 80 90 700 800 900 7000 8000 9000
42
42

চ্যালেঞ্জটি বেশ পুরানো তবে ক) ইনপুটটি খালি থাকতে পারে? খ) ইনপুটটিতে কেবল একটি সংখ্যা থাকতে পারে?
এরিক আউটগল্ফার

@ এরিকথ আউটগল্ফার আমি এগিয়ে যাব এবং বলব ইনপুটটিতে ≥1 নম্বর থাকবে।
ডোরকনবব

উত্তর:


7

জেলি, 7 বাইট

DUṛ"\UḌ

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

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

DUṛ"\UḌ  Main link. Input: A (list of integers)

D        Convert each integer to a list of its base 10 digits.
 U       Reverse each digit list.
    \    Do a cumulative reduce, applying the dyadic link to the left:
   "       For each pair of corresponding digits:
  ṛ          Select the right one.
           Vectorization leaves digits that do not have a counterpart untouched.
     U   Reverse the resulting digit arrays.
      Ḍ  Convert from base 10 to integer.

5

জাভাস্ক্রিপ্ট, 45 42 বাইট

ধন্যবাদ বন্ধ 3 বাইট @Neil

a=>a.map(x=>z=z.slice(0,-x.length)+x,z='')

উপরের ফাংশনটি স্ট্রিংগুলির একটি অ্যারের প্রত্যাশা করে।


1
z=z.slice(0,-x.length)+x,z=''(বা আপনার পছন্দের পরিবর্তনশীল নাম) ব্যবহার করে 4 বাইট সংরক্ষণ করুন ।
নিল

@Neil। সুন্দর! আমি জানতাম যে করার একটি উপায় থাকা উচিত
সরিয়েছি

(সংরক্ষণের ভুল হিসাব করার জন্য দুঃখিত।) এছাড়াও, স্ট্রিং সংস্করণটি অপ্রয়োজনীয় কারণ এটি s=>s.split` `.map(2 বাইট (আমি ডাবল-চেক করেছি এবার) এর চেয়ে কম হিসাবে দেখা যাচ্ছে s=>s.replace(/\d+/g,
নিল

@Neil। বৈধ বিন্দু. আমি কেবল এটি সেখানে ফেলেছি কারণ উত্তর দেওয়ার সময় আমার প্রথম লক্ষ্য ছিল ... তবে আপনি ঠিক বলেছেন
সরানো হয়েছে

1

রেটিনা, 45 বাইট

+`(?=(?<1>\d)+)(?<=(\d)(?(1)x)(?<-1>\d)+ )
$1

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

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


0

গেমা, 35 টি অক্ষর

<D>=@set{p;@fill-right{${p;};$0}}$p

ইনপুট: সংখ্যার সাথে স্ট্রিং যেকোনও দ্বারা আলাদা, আউটপুট স্ট্রিং।

নমুনা রান:

bash-4.3$ gema '<D>=@set{p;@fill-right{${p;};$0}}$p' <<< '123 45 6 7 89 200'
123 145 146 147 189 200

0

রুবি, 39 টি অক্ষর

->a{l='';a.map{|c|l=l[0..-c.size-1]+c}}

ইনপুট: স্ট্রিংগুলির অ্যারে, আউটপুট: স্ট্রিংগুলির অ্যারে।

নমুনা রান:

2.1.5 :001 > ->a{l='';a.map{|c|l=l[0..-c.size-1]+c}}[%w{123 45 6 7 89 200}]
 => ["123", "145", "146", "147", "189", "200"] 

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