একটি এনকোডযুক্ত স্ট্রিং প্রসারিত করুন


18

ক্লাসিক রান দৈর্ঘ্য এনকোডিং এবং ডিকোডিং রয়েছে।

input   output
a3b2c5  aaabbccccc

এবং এটি মোটামুটি সোজা এগিয়ে এবং আগে সম্পন্ন।

চ্যালেঞ্জ হ'ল যখন একাধিক অক্ষর রান দৈর্ঘ্যের পূর্বে ( 0-9 থেকে একক অঙ্ক) পূর্ববর্তী হয় তখন এটি একটি মানহীন আচরণের জন্য অ্যাকাউন্ট করাও হয় । রান লেন্থ ডিজিটের আগে প্রতিটি অক্ষরের (স্ট্রিংয়ের অ-অঙ্কের আগে বা শেষের আগে শেষ অঙ্ক) সেই মানটি পৃথকভাবে প্রয়োগ করা হয় এবং ক্রমে মুদ্রিত হয়।

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

input   output
ab3c5   aaabbbccccc
a0b3    bbb  
13b1    111b
a13b1   aaa111b
a123b1  aaa111222b
aa2a1b1 aaaaab
  • একটি অক্ষরের ক্রম ( [a-zA-Z0-9]+) অবশ্যই তার রান দৈর্ঘ্যের দৈর্ঘ্যের ( [0-9]) দ্বারা অনুসরণ করা উচিত
  • শুধুমাত্র বৈধ ইনপুট বিবেচনা করা প্রয়োজন ( ([a-zA-Z0-9]+[0-9])*)
    • হ্যাঁ, খালি স্ট্রিংটি বৈধ ইনপুট।
  • ইনপুট স্ট্যান্ডার্ড আউটপুট মাধ্যমে আউটপুট, স্ট্যান্ডার্ড ইনপুট মাধ্যমে হয়

এটি কোড গল্ফ, বাইটের সংখ্যা বিজয়ী নির্ধারণ করে।


@AlexA। সঠিক। এমন কিছু এসোলাং রয়েছে যা আমি সময়ে সময়ে দেখে উপভোগ করি যা অন্যথায় বাইট গণনা দ্বারা দণ্ডিত হয়। (কেন সেভাবে গণনা করা ভুল হতে পারে সে সম্পর্কে আমি অবশ্যই পরামর্শের জন্য উন্মুক্ত)

4
@ মিশেলটি চরিত্রগুলি দ্বারা স্কোরিং উত্স কোডটি ইউটিএফ 32 তে সংক্ষেপিত করার জন্য উত্সাহ দেয়, যা চরিত্র অনুসারে 4 বাইট পর্যন্ত এনকোডিংয়ের অনুমতি দেয় তবে এটি সম্পূর্ণ অপঠনযোগ্য।
isaacg

পুনঃটুইট আমি সম্পাদনা করব বাইটে পরিবর্তন করতে। ভবিষ্যতের চ্যালেঞ্জগুলির জন্য গ্রহণযোগ্য হতে স্ক্রিপ্টিংয়ের স্টাইলটি প্রকাশ করার উপায় নিয়ে আমি গুজব ছড়িয়ে দেব।

যদি ইনপুটটি খালি স্ট্রিং হয় তবে আমাদের জমাটি ত্রুটি ছাড়াই সম্পূর্ণ হওয়ার কথা? মেটা উপর ঐক্যমত্য stderr যে আউটপুট উপেক্ষিত হতে পারে, কিন্তু যেহেতু আপনি এটা স্পষ্টভাবে উল্লেখ করা হয়েছে, আমি জিজ্ঞাসা আছে।
ডেনিস

@ ডেনিসকে খালি স্ট্রিং ইনপুট হিসাবে থামানো উচিত। এটি অসীম লুপে যেতে বা অন্য পাঠ্যকে স্ট্যান্ডার্ড আউটপুটে মুদ্রণ করা উচিত নয়।

উত্তর:


3

পিপ, 22 + 1 = 23 বাইট

-rপতাকা ব্যবহার করে । নোট করুন যে এর জন্য আপনার প্রয়োজন হয় 1) ইনপুট (লিনাক্সে Ctrl-D, উইন্ডোজে Ctrl-Z) বা 2) অন্য কোথাও থেকে ইনপুটটি পাইপ করার পরে একটি ইওএফ প্রবেশ করানো দরকার।

(^_@<v)X_@vMa@`\D*\d+`

ব্যাখ্যা:

                        a is first line of stdin (from -r flag) and v is -1 (implicit)
              `\D*\d+`  Pattern (regex) object that matches zero or more non-digits
                        followed by at least one digit
            a@          Find all non-overlapping matches in a, returning a list of strings
           M            To that list, map a lambda function:
  _@<v                    Argument sans last character (equivalent to Python a[:-1])
(^    )                   Split into a list of characters
        _@v               Last character of argument
       X                  Repeat each character of the list that many times
                          (String multiplication X, like most operators, works item-wise
                          on lists)
                        Auto-print (implicit)

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

উদাহরণ, ইনপুট সহ a13b1:

Var a gets        "a13b1"
After regex match  ["a13" "b1"]
After map          [["aaa" "111"] ["b"]]
Final output       aaa111b

পিপের 2 দিন আগে ... এর হিসাবে বেসিক রিজেক্স সমর্থন রয়েছে । দুর্দান্ত সময়!


-rপতাকাটি দিয়ে সে কাজ করে (এবং তাই কর্তাও) । (প্রশ্নটি নির্দিষ্ট করে যে ইনপুটটি এসটিডিআইএন থেকে আসতে হবে))
ডেনিস

@ ডেনিস উফ, এটি মিস করেছেন। বাইট গণনায় পতাকা যুক্ত করা হয়েছে। আমি বিশেষ ভেরিয়েবল ব্যবহার করতে পেরেছি উচিত থাকেন qপরিবর্তে aকোন অতিরিক্ত পতাকা, কিন্তু একটি বাগ মনে করা হয় এবং এটি ইনপুট জন্য দুইবার জিজ্ঞেস করছেন।
DLosc

অবশেষে রেগেক্স সমর্থন সহ একটি গল্ফিং ভাষা!
ডেনিস

@ ডেনিস আমি দেখতে পাচ্ছি আপনি এখন পিপ এড়াচ্ছেন!
অপ্টিমাইজার

8

পার্ল / ব্যাশ 54 40 + 1 = 41 বাইট

perl -pe's:(\D*\d*)(\d):"\$1=~s/./\$&x$2/egr":ege'

এটি মূলত একটি রেইজেক্সের মধ্যে একটি রেজেক্স। এবং কিছুটা যাদু।

ব্যাখ্যা

বাহ্যিক রেজেক্স /(\D*\d*)(\d)/gপ্রতিটি রান-দৈর্ঘ্যের এনকোডযুক্ত গোষ্ঠীটি বের করে। আমরা পুনরাবৃত্তি করতে স্টাফ এবং পুনরাবৃত্তির $1সংখ্যা ক্যাপচার করি $2। এখন আমরা এই গ্রুপটির সম্প্রসারণের সাথে এই জাতীয় প্রতিটি গ্রুপকে প্রতিস্থাপন করব। তার জন্য, আমরা কোডটি "\$1=~s/./\$&x$2/egr" দুইবার মূল্যায়ন করি ( /eeবাইরের প্রতিস্থানে পতাকা হিসাবে )।

প্রথম মূল্যায়ন কেবল পুনরাবৃত্তির সংখ্যাটিকে স্ট্রিংয়ে বিভক্ত করবে - অন্যান্য ভেরিয়েবলগুলি ব্যাকস্ল্যাশ দ্বারা সুরক্ষিত। সুতরাং ইনপুট ধরে a14, আমাদের এখন কোড $1=~s/./$&x4/egrহবে, যা আবার মূল্যায়ন করা হবে।

এটি $1(পুনরাবৃত্তি করার স্টাফ a1) এর সামগ্রীতে বিকল্পটি প্রয়োগ করবে । প্রতিস্থাপন প্রতিটি চরিত্রের সাথে মেলে .$&পরিবর্তনশীল পুরো ম্যাচ, যা আমরা পুনরাবৃত্তি ঝুলিতে x4বার। আমরা /gপ্রতিটি ম্যাচের জন্য এটি অবিচ্ছিন্নভাবে করি এবং পরিবর্তনশীল (যা কেবলমাত্র পঠনযোগ্য) /rপরিবর্তনের পরিবর্তে পরিবর্তিত স্ট্রিংটিকে আটকে রাখি $1। সুতরাং অভ্যন্তরীণ বিকল্পের ফলাফল aaaa1111

-pপতাকা প্রতিটি ইনপুট লাইন প্রতিস্থাপন প্রযোজ্য এবং ফলাফল আউট ছাপে।


3
পার্ল সমাধান হিসাবে এটি স্কোর করার রীতি আছে, যেখানে আপনি কেবলমাত্র সংশোধকটির জন্য 1 বাইট যুক্ত করেন -p। আমি 45 বাইট গণনা। তদতিরিক্ত, আপনার \Dপরিবর্তে ব্যবহার করতে সক্ষম হওয়া উচিত [a-z]যা এটির প্রয়োজনীয়তাও দূর করে i
ডেনিস

7

সিজেম, 33 31 27 বাইট

উঘ, নিয়মিত প্রকাশের অভাব এটিকে দীর্ঘ দীর্ঘ করে দেয় ...

qN+{:XA,s&L\:L>{])~e*[}&X}%

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

আমরা ইনপুট স্ট্রিংয়ের সমস্ত অক্ষর এবং প্রতিটি পুনরাবৃত্তির মধ্যে লুপ করি, শেষ মুখী অক্ষরটি ট্র্যাক রাখি (প্রথমবারের জন্য একটি খালি অক্ষর দিয়ে শুরু করে)। তারপরে আমরা পরীক্ষা করে দেখি যে বর্তমান অক্ষরটি অ-সংখ্যাসূচক এবং শেষ অক্ষরটি সংখ্যাসূচক। যদি তা হয়, তবে আমরা প্রতিটি পূর্বের অক্ষর (যা ইতিমধ্যে পুনরাবৃত্তি হয়নি), সংখ্যা বারটি পুনরাবৃত্তি করি।

(কিছুটা পুরানো কোড সম্প্রসারণ)

q{                       }%        e# Read the input (q) and loop through each character
  L                                e# Put variable L (initially empty character) on stack
   A,                              e# Put variable A (equals 10) and create an array 0..9
     s                             e# Convert the array to string "0123456789"
      &                            e# Do a set intersect b/w previous char and 0-9 string
                                   e# If numeric, it gives 1 char string, otherwise 0
       \:LA,s&                     e# Swap to bring current character on top. Store it in L
                                   e# and do the same set intersect with it
              >                    e# Means we are checking that current char is non-numeric
                                   e# and previous numeric
               {      }&           e# Run this block if above is true
                ])~                e# Wrap everything not already repeated in an array and
                                   e# take out the last character and convert it to integer.
                                   e# This is the run length of the preceding string
                   e*              e# Repeat each character in the string, run length times
                     [             e# Start a new array to help when next run length is found
                        L          e# Restore the current character back on stack to be used
                                   e# in next iteration
                           )~e*    e# The last string-run-length pair is not decoded..
                                   e# So we do that now

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


বাইটস কোয়ালিফায়ার যে সমস্যাটি সৃষ্টি করে তাতে আমি সেই সমস্যার প্রদর্শনের প্রশংসা করি। ধন্যবাদ. আমি কীভাবে যোগ্যতার বাক্যাংশটি লিখব সে সম্পর্কে আমি কিছুটা ভাবছি যে যেখানে ভাষা একক নির্দেশনা মাল্টি-বাইট অক্ষর এমন ইউটিএফ এনকোডিং যা আপনি লুফোলের মাধ্যমে প্রবেশ করিয়ে দিয়েছিলেন তা বিনা অনুমতিতে ভাষার সেই স্টাইলের জন্য শাস্তি পেতে পারে না। পিএস আমি আপনার সরবরাহ করা অ্যালগরিদমিক ভাঙ্গন দেখতে সত্যিই পছন্দ করি।

6

আরএস , 43 71 অক্ষর

ঠিক আছে, এটি খুব দ্রুত পরিণত হয়েছে। বোকা সংখ্যা ...

(\d)(\D)/\1 \2
+(\w)(\w+?)(\d)(?= |$)/\1\3 \2\3
(\w)(\d)/(\1)^^(\2)
 /

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

আসল সংস্করণ (যেমন ইনপুট দিয়ে কাজ করে না 123):

+(\D)(\D+)(\d)/\1\3\2\3
(\D)(\d)/(\1)^^(\2)

ব্যাখ্যা

প্রথম লাইন নম্বর ধারণকারী, যেমন বাঁক রানে মধ্যে শূণ্যস্থান স্থাপন a313মধ্যে a3 13

দ্বিতীয় লাইন ক্রমাগত মত সংকুচিত এনকোডিং বিস্তৃতি aa5করার a5a5

তৃতীয় লাইনটি প্রতিটি উদাহরণের পরিবর্তিত a5মধ্যে aaaaaব্যবহার পুনরাবৃত্তি অপারেটর

শেষ লাইনটি স্পেসগুলি সরিয়ে দেয়।


কিভাবে এটি পরিচালনা করে a123b1?
অপটিমাইজার

@ অপ্টিমাইজার ভাল নেই আমাকে এটি কিছুটা টুইট করতে হবে ...
kirbyfan64sos

@ অপ্টিমাইজার স্থির
kirbyfan64sos 21

5

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

alert(prompt().replace(/(.+?)(\d)(?!\d)/g,(a,b,c)=>b.replace(/./g,y=>y.repeat(c))))

মন্তব্য করেছে:

alert( // output final result
    prompt(). // take input
    replace(/(.+?)(\d)(?!\d)/g, // replace ungreedy capture group of any characters 
                                // followed by a digit (captured)
                                // and not followed by a digit (negative lookahead)
        (a, b, c)=> // replace with a function
            b.replace(/./g, // replace all characters in b
                y=>y.repeat(c) // with that character repeated c times
            )
    )
)

alert(prompt().replace(/(.+?)(\d)(?!\d)/g,(a,b,c)=>Array(c+1).join(b)))একই কাজ করবেন না ? এটি মাত্র 71 বাইট দীর্ঘ।
ইসমাইল মিগুয়েল

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

চেষ্টা করুন Array(6).join('12')এবং এটি ফিরে আসবে '1212121212'
ইসমাইল মিগুয়েল

এইটি একটি কাজ করে: alert(prompt().replace(/(.+?)(\d)(?!\d)/g,(a,b,c)=>Array(-~c).join(b)))(একই by১ বাইট দীর্ঘ, এস .net ফিডাল . net/ia7gocwg এ পরীক্ষিত )
ইসমাইল মিগুয়েল

1
আমি 3 বাইট বলার আলাদা (স্পষ্ট) উপায় খুঁজে পেয়েছি: D
nderscore

4

সিজেম, 27 25 বাইট

r_'A+1>.{64&1$>{])~f*o}&}

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

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

r_                        e# Read a token from STDIN and push a copy.
  'A+                     e# Append the character A to the copy.
     1>                   e# Discard the first character of the copy.
       .{               } e# For each character C of the input string and the
                          e# corresponding character D of the copy:
         64&              e#   Take the bitwise and of D and 64. This pushes @
                          e#   if D is a letter and NUL if it is a digit.
            1$>           e#   Compare the result to a copy of C. This pushes 1
                          e#   if and only if D is a letter and C is a digit.
               {      }&  e#   If the result was 1, do the following:
                ]         e#     Wrap the stack in an array.
                 )~       e#     Pop and evaluate the last character.
                   f*     e#     Repeat each char in the array that many times.
                     o    e#     Print all characters.

3

পাইথ, 33 32 28 বাইট

ssmm*vedkPdPcz-hMJf<@zT\=UzJ

এটি অনলাইনে ব্যবহার করে দেখুন: বিক্ষোভ বা পরীক্ষার জোতা

ব্যাখ্যা

আমি উদাহরণটি ইনপুট ব্যবহার করে কোডটি ব্যাখ্যা করব aa1a23b2। আশা করি এটি ছাড়া কিছুটা অনুসরণ করা সহজ।

                               implicit: z = input string = 'aa1a23b2'
                         Uz    the indices of z: [0, 1, 2, 4, 5, 6, 7]
                  f            filter for indices T, which satisfy:
                   <@zT\=        z[T] < "="
                               this gives us the list of indices [2, 4, 5, 7], 
                               which correspond to digits in z. 
                 J             assignment, J = [2, 4, 5, 7]
               hMJ             increment all element in J: [3, 5, 6, 8]
              -            J   and remove the elements of J:
                                 [3, 5, 6, 8] - [2, 4, 5, 7] = [3, 6, 8]
            cz                 split z at these indices: ['aa1', 'a23', 'b2', '']
           P                   remove last element: ['aa1', 'a23', 'b2']
  m                            map each string d to:
   m     Pd                      map each string k of d-without-last-char to:
     ved                           int(last element of d)
    *   k                          * k
                               this creates [['a', 'a'], ['aaa', '222'], ['bb']]
 s                             sum the lists: ['a', 'a', 'aaa', '222', 'bb']
s                              sum the strings: 'aaaaa222bb'



2

পাইথন 2.7, 98 বাইট

import re
print"".join(c*int(m[-1])for m in 
re.findall(r".+?\d(?!\d)",raw_input())for c in m[:-1])

এটি কেবল অঙ্কগুলি অনুসরণ করে না এমন অঙ্কগুলির জন্য একটি সরল রেজেক্স অনুসন্ধান করে এবং তারপরে প্রতিটি গ্রুপে স্ট্রিং পাটিগণিত করে এবং তাদের সাথে আবার একত্রিত হয়।


আপনি পাইথন 2 থেকে 3. স্যুইচ 2 বাইট বাঁচাতে পারে raw_inputহয়ে inputকিন্তু printচাহিদা প্রথম বন্ধনী।
অ্যালেক্স এ।

সত্য, তবে আমি পাইথন ২.7 এ গল্ফ পছন্দ করি।
পুনরাবৃত্ত

1

জুলিয়া, 105 99 95 87 বাইট

s->join([join([string(b)^(int(p[end])-48)for b=chop(p)])for p=matchall(r"\D*\d*\d",s)])

এটি একটি নামহীন ফাংশন তৈরি করে যা স্ট্রিংটিকে ইনপুট হিসাবে স্ট্রিং দেয় একটি স্ট্রিং দেয়। এটি কল করার জন্য, এটির একটি নাম দিন f=s->...

এখানে দুটি অ্যারে বোধগম্যতা ব্যবহার করা হয়, অন্যটির মধ্যে একটি নেস্টেড। বাহ্যিক বোধগম্যতা নিয়মিত প্রকাশের বিরুদ্ধে ইনপুট স্ট্রিংয়ের প্রতিটি ম্যাচে কাজ করে \D*\d*\d। অভ্যন্তরীণ বোধগম্যতা অনুক্রমের অঙ্ক অনুসারে ম্যাচের প্রতিটি চরিত্র পুনরাবৃত্তি করে। অভ্যন্তরীণ অ্যারের উপাদানগুলি একটি স্ট্রিংয়ে যুক্ত হয়, সুতরাং বাইরের অ্যারেটি স্ট্রিংগুলির একটি অ্যারে। এগুলি যোগদান করে ফিরে এসেছেন।

জুলিয়ায় স্ট্রিংগুলি চরিত্রের অ্যারের মতো আচরণ করা যেতে পারে। তবে নোট করুন যে জুলিয়ায় Charএবং Stringধরণের ধরণের পদ্ধতিগুলি একই পদ্ধতিতে সংজ্ঞায়িত হয় না; বিশেষত, ^অক্ষরের জন্য পুনরাবৃত্তি করার কোনও পদ্ধতি নেই । এটি একটি সংশ্লেষিত কাজটি ব্যবহার করে:

  • শেষ অক্ষরটি বাদ দিয়ে স্ট্রিংটির উপরে লুপ করুন, যা ব্যবহার করে সরানো হয়েছে chop()
  • ব্যবহার করে বর্তমান চরিত্রটিকে স্ট্রিংয়ে রূপান্তর করুন string()
  • পেছনের অঙ্কটি, যা একটি চরিত্রও একটি পূর্ণসংখ্যায় রূপান্তর করে। যাইহোক, নোট করুন, উদাহরণস্বরূপ, int('4')4 ফিরে আসে না বরং এটি কোডপয়েন্টটি দেয়, যা এই ক্ষেত্রে 52 is সুতরাং আমরা প্রকৃত পূর্ণসংখ্যার ফিরে পেতে 48 কে বিয়োগ করতে পারি।
  • string(b)অনুসারে পুনরাবৃত্তি int(p[end]) - 48

উদাহরণ:

julia> f("ab3c5")
"aaabbbccccc"

julia> f("a0b3")
"bbb"

julia> f("13b1")
"111b"

1

পাইথন 3, 148 144 136 135 বাইট

w,o,r,d=''.join,'',[],[]
for c in input()+' ':
 if'/'<c<':':d+=[c]
 elif d:o+=w(x*int(w(d))for x in r);r=[c];d=[]
 else:r+=[c]
print(o)

পরামর্শের জন্য Pietu1998 এবং mbomb007 ধন্যবাদ।

পাইথন 2, 161 151 147 139 138 বাইট

হয়তো আজকের দিনটি কেবল কাজের জন্য দীর্ঘ দিন ছিল, তবে আমি কীভাবে গল্ফ করব তা আমার জীবনের পক্ষে বুঝতে পারি না ..

w,o,r,d=''.join,'',[],[]
for c in raw_input()+' ':
 if'/'<c<':':d+=[c]
 elif d:o+=w(x*int(w(d))for x in r);r=[c];d=[]
 else:r+=[c]
print o

3
পাইথন 3 এ পরিবর্তন করা কয়েক বাইট সংরক্ষণ করে ( raw_আউট, প্রথম বন্ধনী print)। একটি খালি তালিকা মিথ্যা এবং একটি খালি খালি তালিকা সত্য len(d)>0বলে প্রতিস্থাপন করা যেতে পারে dlist(...)সরাসরি যেতে পারেন for। বর্গাকার বন্ধনীগুলি w([...])অপ্রয়োজনীয় কারণ এটি একমাত্র যুক্তি। আপনি স্থানটি সরাতে পারেন ) for। আমি এ পর্যন্ত এনেছি এমন সমস্ত ছোটখাটো জিনিস।
পূর্কাকুডারী

@ পিটু ১৯৯৮ সাহায্যের জন্য ধন্যবাদ!
কেদে

আপনার পদ্ধতির খুব বেশি পরিবর্তন না করে, list()স্ট্রিংগুলি পুনরাবৃত্তিযোগ্য হওয়ায় আপনি এ থেকে মুক্তি পেতে পারেন । আপনি ব্যবহার করতে পারেন w=r=''। আপনি যদি এটিকে অনেক পরিবর্তন করতে ইচ্ছুক হন তবে আমার সমাধান দেখুন। :)
পুনরাবৃত্ত

if c.isdigit()হয়ে উঠতে পারে if'/'<c<':', যদি আমার ভুল না হয়।
ডিএলসাস

@DLosc ধন্যবাদ, এটি কাজ করে বলে মনে হচ্ছে।
কেদে

0

জাভা 7, 175 বাইট

String c(String s){String r="",a[];for(String x:s.split("(?<=(\\d)(?!\\d))")){a=x.split("");for(int i=0,j,l=a.length-1;i<l;i++)for(j=0;j++<new Short(a[l]);r+=a[i]);}return r;}

চ্যালেঞ্জটি দেখতে যতটা কঠিন, ততই শক্ত im

অবরুদ্ধ এবং পরীক্ষার কোড:

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

class M{
  static String c(String s){
    String r = "",
           a[];
    for(String x : s.split("(?<=(\\d)(?!\\d))")){
      a = x.split("");
      for(int i = 0, j, l = a.length-1; i < l; i++){
        for(j = 0; j++ < new Short(a[l]); r += a[i]);
      }
    }
    return r;
  }

  public static void main(String[] a){
    System.out.println(c("ab3c5"));
    System.out.println(c("a0b3"));
    System.out.println(c("13b1"));
    System.out.println(c("a13b1"));
    System.out.println(c("a123b1"));
    System.out.println(c("aa2a1b1"));
    System.out.println(c("123"));
  }
}

আউটপুট:

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