কাস্টম নম্বর বেস রূপান্তরকারী


30

যে শক্তিগুলি তারা চাইলে যে কোনও ফর্ম্যাট ব্যবহার করে যে কোনও সংখ্যাকে দ্রুত তাদের নিজস্ব নম্বর বেসে রূপান্তর করতে সক্ষম হতে চায়।

ইনপুট

আপনার প্রোগ্রামটি অবশ্যই 3 টি পরামিতি গ্রহণ করবে।

  1. সংখ্যা: রূপান্তরিত করতে স্ট্রিং নম্বর
  2. ইনপুট ফরম্যাট: বেস স্ট্রিংটি বর্তমানে রয়েছে
  3. আউটপুটফর্ম্যাট: বেস স্ট্রিং যা সংখ্যায় রূপান্তর করতে হয়।

আউটপুট

আপনার প্রোগ্রামটি অবশ্যই Numberপুরানো নম্বর বেস InputFormatথেকে নতুন নম্বর বেসে রূপান্তর করবেOutputFormat

উদাহরণ

("1","0123456789","9876543210") = "8"
("985724","9876543210","0123456789ABCDEF") = "37C3"
("FF","0123456789ABCDEF","0123456789") = "255"
("FF","0123456789ABCDEF","01234567") = "377"
("18457184548971248772157", "0123456789","Aa0Bb1Cc2Dd3Ee4Ff5Gg6Hh7Ii8Jj9Kk,Ll.Mm[Nn]Oo@Pp#Qq}Rr{Ss-Tt+Uu=Vv_Ww!Xx%Yy*Zz") = ",sekYFg_fdXb"

অতিরিক্ত

নতুন বেস 77 টি পরীক্ষার জন্য প্রপসের প্রয়োজন নেই যদিও এটি কাজ করে

  1. আপনার ভাষা যদি আপনার প্রথমে কোনও সংখ্যায় রূপান্তর করতে হয় এবং 32 বিটের মধ্যে লক হয়ে থাকে তবে আপনি এড়িয়ে যেতে পারেন sk
  2. এটি একটি অতিরিক্ত পরীক্ষা হিসাবে।

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

পিএইচপি 7.2 (বিসিএমথ - এক্সটেনশন) 614 বাইট

<?php
function f($a, $b, $c)
{
    $d= str_split($b,1);
    $e= str_split($c,1);
    $f= str_split($a,1);
    $g=strlen($b);
    $h=strlen($c);
    $k=strlen($a);
    $r='';
    if ($c== '0123456789')
    {
        $r=0;
        for ($i = 1;$i <= $k; $i++)
            $retval = bcadd($retval, bcmul(array_search($f[$i-1], $d),bcpow($g,$k-$i)));
        return $r;
    }
    if ($b!= '0123456789')
        $l=f($a, $b, '0123456789');
    else
        $l= $a;
    if ($l<strlen($c))
        return $e[$l];
    while($l!= '0')
    {
        $r= $e[bcmod($l,$h)].$r;
        $l= bcdiv($l,$h,0);
    }
    return $r;
}

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

স্কোরিং

এটি কোড গল্ফ; সংক্ষিপ্ততম কোড জয় স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।


5
@ উইন্ডমিলকুকিজ ফর্ম্যাট স্ট্রিংগুলিতে যে কোনও অক্ষরই রয়েছে By
অ্যাডাম

6
প্রথম প্রথম প্রশ্ন! :-)
জিউসেপে


2
এটি "অনন্য" বেসের জন্য পরীক্ষার কেস যুক্ত করার উপযুক্ত হতে পারে - যেমন ["zX", "tXdsyqzSDRP02", "brFNC02bc"] => "cb"। (বা যা আসলেই হওয়া উচিত, যদি তা ভুল হয়)
মনিকার লসুইট

2
আমি বিন্যাসে 36 টিরও বেশি অক্ষরের সাথে একটি পরীক্ষার কেস প্রস্তাব দেব, বিল্ট-ইনগুলি ব্যবহার করে যে কেউ কেবল 36 টি বেসে যায় তাকে ধরতে
জো কিং

উত্তর:


13

....................... আপনি কি Zaজানেন যে আমি বেস রূপান্তরটি দেখেছি কিন্তু ম্যাটল.সুভারের ডকস স্পষ্ট ছিল না যে এটি বেসের চরিত্রগুলি গ্রহণ করেছে, তাই আমি চেষ্টা করে দেখিনি। আমাকে চিপ!
জিউসেপ্পে

@ জিউস্পে হা হা, আমি কেবল এটির কথা মনে করেছি কারণ এটি এমন কোনও আদেশের মতো মনে হয়েছিল যা কিছু চতুর হ্যাক বা দুটি ব্যবহারের জন্য (আব) ব্যবহারযোগ্য pe অদ্ভুত যে আমার এটির প্রথম ব্যবহারটি সরল-আপ অন্তর্নির্মিত উত্তর হিসাবে। :)
সূন্দর - মনিকা পুনরায় ইনস্টল করুন

1
আমার প্রথম চিন্তা যখন আমি "জা" দেখি তখন "প্রভু, হ্যারি ড্রেসডেন" ছিলেন। +1 টি।
মনিকা'র মোকদ্দমাটি

8

আর , 124 বাইট

function(n,s,t,T=L(t),N=(match(!n,!s)-1)%*%L(s)^(L(n):1-1))intToUtf8((!t)[N%/%T^rev(0:log(N,T))%%T+1])
"!"=utf8ToInt
L=nchar

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

উহ্, এটি একটি ঘোলাটে। আমি আর এর জন্য টিপিকাল বেস রূপান্তর কৌশল ব্যবহার করি, তবে আর-এ স্ট্রিং ম্যানিপুলেশনগুলি এখনও অগোছালো!


দুর্ভাগ্যক্রমে এটি n = "0" এর সাথে কাজ করবে না ... আপনার 2 বাইট যুক্ত করা উচিত তবে log(N+1,T)মাঝে মাঝে শূন্যের কারণ হয় যেমন আপনি যখন 31 টি 10 ​​থেকে বেস 2 তে রূপান্তর করেন :(
digEmAll

নেতৃত্বের শূন্যগুলি ছাড়াই লগারিদমের "শূন্য ইস্যু" এড়াতে, আমি অন্যান্য অনেকগুলি সমাধান দেখতে পাচ্ছি না ... আপনি log(N+!N,T)অবশ্যই !মূল অর্থটি ব্যবহার করে করতে পারেন
digEmAll

@ ডিজিগেম সমস্ত ওপির মন্তব্যগুলি এখনও কিছুটা অস্পষ্ট, তবে মনে হচ্ছে শূন্যকে সমর্থন করার দরকার নেই।
জিউসেপ

ওহ ভাল .. ঠিক আছে তবে :)
digEmAl

7

এপিএল (ডায়ালগ ইউনিকোড) , 22 বাইট

নামবিহীন ইনফিক্স ল্যাম্বদা। লাগে InputFormatবাম আর্গুমেন্ট হিসাবে এবং OutputFormatঅধিকার আর্গুমেন্ট হিসাবে, এবং অনুরোধ জানানো Numberstdin থেকে। ধরে নেওয়া ⎕IO( I ndex O rigin) 0, যা বহু সিস্টেমে ডিফল্ট।

{⍵[(≢⍵)⊥⍣¯1⊢(≢⍺)⊥⍺⍳⎕]}

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

{} "ডিএফএন"; বাম আর্গুমেন্ট, ডান আর্গুমেন্ট
(স্মৃতিচারণ: গ্রীক বর্ণমালার বাম এবং ডান প্রান্ত)

⍵[] নিম্নলিখিতগুলির সাথে আউটপুট ফর্ম্যাটটিকে সূচক করুন:

   ইনপুট জন্য প্রম্পট

  ⍺⍳characters n অক্ষরগুলির ইনপুট ফর্ম্যাটটিতে অন্তর্ভুক্ত

  ()⊥ নিম্নলিখিত বেসে হিসাবে মূল্যায়ন:

   ≢⍺ ইনপুট ফর্ম্যাটটির দৈর্ঘ্য

   ফলন যে ( ¯1থেকে পৃথক (≢⍺))

  ()⊥⍣¯1 নিম্নলিখিত বেসে রূপান্তর করুন:

  ≢⍺ আউটপুট ফর্ম্যাট দৈর্ঘ্য



7

সি (জিসিসি), 79 + 46 = 125 বাইট

char*O;l,n;g(n){n/l&&g(n/l);write(1,O+n%l,1);}

এটি অবশ্যই সাথে সংকলন করা উচিত

-Df(s,i,o)=for(n=l=0;n=n*strlen(i)+index(i,s[l])-i,s[++l];);l=strlen(O=o);g(n)

পতাকা। (হ্যাঁ, এটি অবিশ্বাস্যভাবে স্কেচি, এজন্য আমি আমার পুরানো উত্তরটি নীচে রাখছি)) এটি একটি ম্যাক্রো সংজ্ঞায়িত করে fযা STDOUT এর উত্তরকে আউটপুট করে।

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

সি (জিসিসি), 133 131 বাইট

char*O;l;g(n){n/l&&g(n/l);write(1,O+n%l,1);}f(s,i,o,n)char*s,*i,*o;{for(n=0,l=strlen(O=o);n=n*strlen(i)+index(i,*s)-i,*++s;);g(n);}

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

এটি এমন একটি ফাংশন সংজ্ঞায়িত করে fযা STDOUT এর উত্তরকে ছাড়িয়ে যায়।

char*O;           // declare variable to store output charset
l;                // will be set to length of O
g(n){             // helper function to print the result
  n/l&&g(n/l);    // recursively calls itself if there are more digits
  write(1,        // output to stdout...
   O+n%l,1);      // the byte at (n mod output base) in O
}
f(s,i,o,n)        // main function
char*s,*i,*o;{    // declare string inputs
for(n=0,          // initialize n to 0
l=strlen(O=o);    // assign output charset so we don't have to pass it to g
n=n*strlen(i)     // repeatedly multiply n by input base...
+index(i,*s)-i,   // ... add the index of the digit in input charset...
*++s;);           // and move to the next digit until there's none left
g(n);             // call the helper function on the resulting integer
}

এর putcharপরিবর্তে writeএবং ডিকোডিং লুপটি সামান্য পরিবর্তন করে আপনি 2 বাইট সংরক্ষণ করতে পারেন : এটি অনলাইনে চেষ্টা করুন!
এরিকএফ

এই indexফাংশনটি আমার পদ্ধতির সাথে আমাকে একটি
বাইটও বাঁচিয়েছিল,

6

05 এ বি 1 ই , 5 বাইট

ÅβIÅв

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

এটি 05AB1E এর উত্তরাধিকার সংস্করণে কাজ করে না । এটি কেবলমাত্র নতুন সংস্করণ এলিক্সির পুনর্লিখনে কাজ করে।

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

আমি - সম্পূর্ণ প্রোগ্রাম।
Åβ - কাস্টম বেস থেকে দশমিক রূপান্তর করুন।
  আমি - তৃতীয় ইনপুট পুশ করুন।
   Åв - দশমিক থেকে কাস্টম বেসে রূপান্তর করুন। 

আপনি বলছেন এটি কেবল 05AB1E v2 এ কাজ করে (এটি সঠিক সংস্করণের নম্বর কিনা তা নিশ্চিত নয়)) তবে আপনি এখনও একটি টিআইও-লিঙ্ক সরবরাহ করেছেন। এলিক্সির সংস্করণটি ইতিমধ্যে টিআইওতে রয়েছে ?! : এস বা এটি বেশিরভাগ পরীক্ষার ক্ষেত্রে কাজ করে তবে কিছু প্রান্তের ক্ষেত্রে এটি কেবলমাত্র নতুন সংস্করণে কাজ করে?
কেভিন ক্রুইজসেন

2
05AB1E v2 টিআইওতে এখন উপলব্ধ। 05AB1E (উত্তরাধিকার) (টিও বারে এটি সন্ধান করুন) পুরানো 05AB1E এর নাম এবং 05AB1E নতুনটির নাম। আমি জানি যে আপনি ইতিমধ্যে চ্যাটরুমে দেখেছেন, তবে আমি এটি অন্য ব্যবহারকারীর জন্য একটি রেফারেন্স হিসাবে এখানে রেখে দেব।
মিঃ এক্সকোডার

5

এমএটিএল , 5 বাইট

এই কাজটি করার জন্য সুনদার সত্যিকারের অন্তর্নির্মিত! আমার বোবা উত্তরটির পরিবর্তে এই উত্তরটি উপরে যান :-(

ZAwYA

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

          % implicit input N, the number, and S, the digits of the Source base
ZA        % base2dec, convert string N using S as digits into a base 10 integer
w         % swap stack elements, with implicit input T, the digits of the Target base
YA        % dec2base, reverse the ZA operation with digits coming from T instead.

4

কাঠকয়লা , 5 বাইট

⍘⍘SSS

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

  S     Input the "number"
   S    Input the input format
 ⍘      Convert to number using that format
    S   Input the output format
⍘       Convert to string using that format
        Implicitly print

BaseStringফাংশন স্বয়ংক্রিয়ভাবে প্রথম প্যারামিটার ধরনের উপর নির্ভর করে নম্বর এবং স্ট্রিং মধ্যে পরিবর্তন করে।


3

পাইথন 2 , 132 129 122 121 বাইট

lambda n,a,b:g(sum(len(a)**i*a.find(j)for i,j in enumerate(n[::-1])),b)
g=lambda n,c:c[n:n+1]or g(n/len(c),c)+c[n%len(c)]

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

একটি বেনামী ফাংশন (ধন্যবাদ, এরিক আউটগল্ফার !) যা মূল সংখ্যাটিকে বেস 10 পূর্ণসংখ্যায় রূপান্তর করে, তারপর পূর্ণসংখ্যা এবং নতুন বেস স্ট্রিংটি ফাংশন জি () তে পাস করে, যা পুনরাবৃত্তভাবে নতুন বেসে রূপান্তর করে। আউটপুটফর্ম্যাটটির দৈর্ঘ্য g () এ প্যারামিটার হিসাবে চলে যায়।

একটি নিম্ন বাইকের পরিমাণের জন্য g () আপডেট হয়েছে। (ধন্যবাদ, ডেনিস !)

ফাইন্ড () সহ সূচক () প্রতিস্থাপন করা হয়েছে। (ধন্যবাদ, মিঃ এক্সকোডার !)

অব্যক্ত ব্যাখ্যা:

def f(n, a, b):
    # reverse the string to that the least significant place is leftmost
    # Ex: 985724 -> 427589
    n = n[::-1]
    # get the value of each place, which is its index in the InputFormat, times the base to the power of the place
    # Ex: 427589, 9876543210 -> 5*10^0, 7*10^1, 2*10^2, 4*10^3, 1*10^4, 0*10^5 -> [5,70,200,4000,10000,0]
    n = [a.find(j)*len(a)**i for i,j in enumerate(n)]
    # add all of the values together to bet the value in base 10
    # Ex: (5 + 70 + 200 + 4000 + 10000 + 0) = 14275
    n = sum(n)

    # call the convert to base function
    return g(n, b)

def g(n, c):
    # string slice, which will return an empty string if n:n+1 is not in range
    # an empty string is falsey
    if c[n:n+1]:
        return c[n:n+1]
    else:
        # get current least significant digit
        rem = c[n%len(c)]
        # get the rest of the integer
        div = n/len(c)

        # get the converted string for the rest of the integer, append the calculated least significant digit
        return g(div,c)+rem

1
আপনার প্রয়োজন নেই f=, বেনাম কর্মগুলি ডিফল্টরূপে অনুমোদিত।
এরিক দ্য আউটগল্ফার

@ এরিক আউটগল্ফার যখন বেনামে ফাংশনটি অন্য কোনও ফাংশন কল করে, তখন কি এটি অনুমোদিত?
ট্রিগারনমেট্রি

যতক্ষণ আপনি অন্য জিনিসগুলিকে আপনার বাইটেকউন্টে অন্তর্ভুক্ত করেন ততক্ষণ হ্যাঁ, আপনাকে ভেরিয়েবল সংজ্ঞা দিতে এবং মডিউলগুলি আমদানি করার অনুমতি দেওয়া হয়।
এরিক দ্য আউটগল্ফার

1
সহায়ক ফাংশন হয়ে উঠতে পারে g=lambda n,c:c[n:n+1]or g(n/len(c),c)+c[n%len(c)]
ডেনিস

1
এবং প্রধান এক হয়ে যেতে পারে lambda n,a,b:g(sum(len(a)**i*a.find(j)for i,j in enumerate(n[::-1])),b,len(b))
মিঃ এক্সকোডার

2

জেলি , 11 বাইট

iⱮ’ḅL{ṃ⁵ṙ1¤

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

আর্গুমেন্ট অর্ডার: ইনপুটফর্ম্যাট, সংখ্যা, আউটপুট ফরম্যাট। যথাযথ পালানোর সাথে যুক্তিগুলি উদ্ধৃত করতে ভুলবেন না!


এইচআরএম নিশ্চিত নয় যে আমি স্পষ্টভাবে প্যারামগুলির ক্রমটি বর্ণনা করেছি ...
মার্টিন বার্কার

@ মার্টিন বার্কার প্যারামগুলি এখানে 2, 1, 3 অনুসারে নেওয়া হয়েছে। আমি চ্যালেঞ্জে একটি নির্দিষ্ট আদেশের প্রয়োজন দেখতে পাচ্ছি না, এবং এটি নিরুৎসাহিত হবে।
এরিক আউটগল্ফার

3
@ মার্টিন বার্কার প্রো টিপ: এই জাতীয় জিনিসগুলির সাথে নমনীয় হন। কোনও কাজ সমাধানের সময় ইনপুটগুলির ক্রমটি সম্পূর্ণ অপ্রাসঙ্গিক বলে মনে করি, সুতরাং আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি যে কোনও নির্বিচারে পরামিতিগুলির অর্ডারের অনুমতি দিন
জনাব এক্সকোডার

আমি এখন এটি পরীক্ষা করার চেষ্টা করে যাই হোক না কেন এটি আটকে রাখব।
মার্টিন বার্কার

2

পাইথ, 21 বাইট

s@LeQjimx@Q1dhQl@Q1le

পরীক্ষা স্যুট

ব্যাখ্যা:
s@LeQjimx@Q1dhQl@Q1le  | Code
s@LeQjimx@Q1dhQl@Q1leQ |  with implicit variables
       m               | Map the function
        x   d          |   index of d in
         @Q1           |    the second string in the input
             hQ        |  over the first string in the input
      i                | Convert the resulting list to int from base
               l@Q1    |  length of the second string in the input
     j                 | Convert the int into a list in base
                   leQ |  length of the last string in the input
 @LeQ                  | Turn each number in the list into the character from the numbers index in the last string in the input
s                      | Concatenate the strings in to one string
                       | Implicit print


2

পার্ল 6 , 100 97 বাইট

{$^c.comb[(":"~$^b.chars~[$^a.comb>>.&{index $b,$_}].perl).EVAL.polymod($c.chars xx*)].join.flip}

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

বেনামি কোড ব্লক যা ক্রম, ইনপুট, ইনপুট ফর্ম্যাট এবং আউটপুট ফর্ম্যাটটিতে 3 টি স্ট্রিং নেয়, তারপরে একটি স্ট্রিং প্রদান করে

ব্যাখ্যা:

{  # Anonymous code block
  $^c.comb[  # Split the output format into characters
           (":"~$^b.chars~[$^a.comb>>.&{index $b,$_}].perl) # The radix syntax in a string e.g ":3[1,2,3]"
           .EVAL  # Eval'ed to produce the base 10 version
           .polymod($c.chars xx*)  # Converted to a list in the output base (reversed)
          ] # Convert the list into indexes of the output format
           .join  # Join the characters to a string
           .flip  # And unreversed
}

2

ভিবিএ, 182 বাইট

একটি ঘোষিত সাবরুটাইন যা nভাষায় yএবং প্রকল্পগুলিতে ইনপুট নেয় z

Sub f(n,y,z)
l=Len(n)
For i=-l To-1
v=v+(InStr(1,y,Mid(n,-i,1))-1)*Len(y)^(l+i)
Next
l=Len(z)
While v
v=v-1
d=v Mod l+1
v=v\l
If d<0Then v=v+1:d=d-l
o=Mid(z,d+1,1)&o
Wend
n=o
End Sub

2

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

হিসাবে ইনপুট লাগে (input_format)(output_format)(number)

s=>d=>g=([c,...n],k=0)=>c?g(n,k*s.length+s.search(c)):k?g(n,k/(l=d.length)|0)+d[k%l]:n

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


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

@ মার্টিন বার্কার আপনি কোন নিয়মের কথা উল্লেখ করছেন? যাইহোক 3 স্ট্রিং নিতে আপডেট হয়েছে।
আর্নল্ড

ইনপুট প্যারামিটারগুলির সমস্ত 3 "স্ট্রিং" কে সি ++ বলে কারণ স্ট্রিংটি সরাসরি পড়তে পারে এবং জাভাস্ক্রিপ্ট সহ এটির হিসাবে অ্যারে হিসাবে ব্যবহার করা যায়।
মার্টিন বার্কার

1

সি (জিসিসি) , 130 129 বাইট

v;c(r,i,s,t)char*r,*i,*t;{for(r[1]=v=0;*i;v=v*strlen(s)+index(s,*i++)-s);for(s=strlen(t),i=1;*r=t[v%s],v/=s;memmove(r+1,r,++i));}

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

এর indexপরিবর্তে -1 বাইট ব্যবহার করুন strchr

এটি একটি সহজ পুনরাবৃত্তি পদ্ধতি, sizeof(int) == sizeof(char *)বাইটগুলি সংরক্ষণ করতে কিছু ভেরিয়েবল (এবং এর মাধ্যমে টিআইও-তে আপত্তিজনক) ব্যবহার করে।

ইনপুট:

  • i ইনপুট নম্বর
  • s উত্স বেস অক্ষর
  • t লক্ষ্য বেস অক্ষর

আউটপুট:

  • r ফলাফল সংখ্যা (একটি বাফার নির্দেশক)

ব্যাখ্যা:

v;                                        // value of number
c(r,i,s,t)char*r,*i,*t;{
    for(r[1]=v=0;                         // initialize value and second
                                          // character of output to 0
        *i;                               // loop while not at the end of
                                          // input string
         v=v*strlen(s)+index(s,*i++)-s);  // multiply value with source base
                                          // and add the value of the current
                                          // digit (position in the base string)
    for(s=strlen(t),i=1;                  // initialize s to the length of the
                                          // target base string, length of
                                          // result to 1
        *r=t[v%s],v/=s;                   // add character for current digit
                                          // (value modulo target base) and
                                          // divide value by target base until
                                          // 0 is reached
        memmove(r+1,r,++i));              // move result string one place to
                                          // the right
}

সুপারিশ bcopy(r,r+1,++i)পরিবর্তেmemmove(r+1,r,++i)
ceilingcat


1

জাভা 10, 131 বাইট

একটি ল্যাম্বদা স্ট্রিং হিসাবে পরামিতিগুলি গ্রহণ করছে এবং একটি স্ট্রিং ফিরিয়েছে।

(i,f,o)->{int n=0,b=o.length();var r="";for(var c:i.split(r))n=n*f.length()+f.indexOf(c);for(;n>0;n/=b)r=o.charAt(n%b)+r;return r;}

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

Ungolfed

(i, f, o) -> {
    int n = 0, b = o.length();
    var r = "";
    for (var c : i.split(r))
        n = n * f.length() + f.indexOf(c);
    for (; n > 0; n /= b)
        r = o.charAt(n % b) + r;
    return r;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.