সংখ্যাগুলিকে চিঠিতে রূপান্তর করুন এবং একটি স্ট্রিংয়ের বিপরীতে


12

সংখ্যা এবং তাদের সমতুল্য অক্ষরের তালিকার উপর ভিত্তি করে একটি স্ট্রিং ইনপুট নিন, সেই স্ট্রিংয়ের অক্ষরগুলিকে সমতুল্য সংখ্যা / বর্ণের সাথে প্রতিস্থাপন করুন এবং ফলাফলটি আউটপুট দিন।

তালিকা

  • 1 = ক
  • 2 = খ
  • 3 = গ
  • 4 = d
  • 5 = ই
  • 6 = চ
  • 7 = জি
  • 8 = এইচ
  • 9 = i
  • 0 = জে

ইনপুট

thisisastring1124

আউটপুট

t89s9s1str9n7aabd

বিধি

  • সংখ্যাগুলি কেবল ছোট অক্ষরের সমতুল্য।
  • তালিকার বাইরের যে কোনও অক্ষর যেমন রয়েছে তেমনই রেখে দেওয়া হবে।
  • ইনপুট স্ট্রিংয়ে স্পেস থাকতে হবে না।
  • হয় পুরো প্রোগ্রাম বা ফাংশন অনুমোদিত হয়।
  • যেহেতু এটি কোড-গল্ফ, তাই খুব কম বাইট জিতেছে।

2
পিপিসিজিতে আপনাকে স্বাগতম। দুর্দান্ত চ্যালেঞ্জ!
— অ্যাডম

2
এর পরিবর্তে আমরা কি বড় হাতের অক্ষর বদলাতে পারি?
— অ্যাডম

কেবল ছোট হাতের অক্ষর, বড় হাতের অক্ষরগুলি তালিকার আওতার বাইরে থাকবে।
— নয়ের আন্টারেস

ইনপুটটিতে কি কেবলমাত্র অক্ষর এবং সংখ্যা থাকবে, বা অন্য স্থানের অক্ষর (যেমন বিরামচিহ্ন) এতে থাকতে পারে?
— - মনিকা 22

ইনপুট স্ট্রিংয়ের মধ্যে ফাঁকা জায়গা বাদে অন্য কোনও অক্ষর থাকতে পারে তবে তালিকার বাইরের যে কোনও কিছুই আউটপুট স্ট্রিংয়ে অচ্ছুত থাকবে।
— নয়ের আন্টারেস

উত্তর:






6

পার্ল 6 , 45 23 বাইট

tr/1..90a..j/a..j1..90/

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

কেবল একটি সরল ট্রান্সলিটেশন রেজেক্স।


1
টিআর TR/1..90a..j/a..j1..90/ ব্যবহারটি
— ফিল এইচ

ফিল্ড হা, আমি আক্ষরিকভাবে কেবল অপারেটরটিকে অনুসন্ধান করছিলাম! ধন্যবাদ!
— জো কিং

5

রেটিনা 0.8.2 , 12 বাইট

T`a-j09-1`Ro

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

T``

একটি অনুলিপি সম্পাদন করুন।

a-j09-1

উত্স তালিকা হ'ল অক্ষর a-j, তারপরে 0, তারপর অঙ্কগুলি 9-1।

Ro

গন্তব্য তালিকা হ'ল উত্স তালিকাটি বিপরীত, অর্থাৎ অঙ্কগুলি 1-9, তারপরে 0, তারপরে অক্ষরগুলি j-a।





3

আর , 40 বাইট

function(s)chartr("0-9ja-i","ja-i0-9",s)

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

আশ্চর্যজনকভাবে, আর এই ধরণের চ্যালেঞ্জের প্রতি trমার্জিত , কারণ এটি বাশের উত্তরের মতো একটি সদৃশ ফাংশন রয়েছে । কেন এটি বিদ্যমান তা জানিনা, তবে আমি এর জন্য কৃতজ্ঞ!


অ্যামেজিং! চার্টার () বুঝে উঠেনি রেজেক্স জানতেন না।
— স্নোরাম

@ স্নোরাম পুরোপুরি রেইজেক্স নয়; এটি ডকুমেন্টেশনে উল্লেখ করে যে "নির্দিষ্টকরণে রেঞ্জগুলি সমর্থিত তবে অক্ষর শ্রেণি এবং পুনরাবৃত্তিযুক্ত অক্ষর নয়" "
— জিউসেপে

3

এমএস-এসকিউএল, 71 বাইট

SELECT TRANSLATE(v,'1234567890abcdefghij','abcdefghij1234567890')FROM t

নতুন এসকিউএল 2017 ফাংশন TRANSLATEস্বতন্ত্র চরিত্র প্রতিস্থাপন সম্পাদন করে, তাই এই উদ্দেশ্যে আদর্শভাবে উপযুক্ত। পূর্বের চ্যালেঞ্জে আমার অনুরূপ উত্তর দেখুন ।

ইনপুট পূর্ব বিদ্যমান টেবিল মারফত টি varchar কলাম সহ বনাম , আমাদের আই নিয়ম অনুযায়ী । কেবল ছোট হাতের অক্ষরগুলি প্রতিস্থাপন করতে, কেস-সংবেদনশীল কোলেশন ব্যবহার করে টেবিলটি তৈরি করতে হবে :

CREATE TABLE t(v varchar(max) COLLATE Latin1_General_CS_AS)




1

রেক্সএক্স, 57 বাইট

#=1234567890
a='abcdefghij'
say translate(arg(1),a #,# a)

1

সি (জিসিসি) , 81 72 বাইট

পরামর্শগুলির জন্য গিয়াকোমো গারাবেলোকে ধন্যবাদ।

f(char*s){for(;*s++=*s-97U<11?(*s-6)%10+48:*s-48U<11?(*s-9)%10+97:*s;);}

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


আপনি 6 অক্ষর ইনপুট স্ট্রিং পরিবর্তনকারী দ্বারা পরিবর্তে অপসারণ করতে পারেন এটি মুদ্রণ putchar(...)> - *s=...প্রতিস্থাপন করে অন্যান্য 4 এবং *s-48U<11সঙ্গে *s<59 এটি অনলাইন ব্যবহার করে দেখুন!
— গিয়াকোমো গারাবেলো

@ গিয়াকোমো গ্যারাবেলো *s<59যদি অক্ষরগুলি ইনপুটটিতে থাকে তবে সেগুলি ভেঙে যায় $, এ কারণেই আমি *s-48U([0..47] হয়ে [[-48 ..- 1] হয়ে যায় যা একটি বড় স্বাক্ষরিত মান হিসাবে পরিণত হয়)) প্রশ্নটি হিসাবে উল্লেখ করা হয়নি যে এটি অযোগ্য কিনা -নালুমগুলি বৈধ ছিল, আমি আরও রক্ষণশীল ব্যাখ্যার সাথে গেলাম।
— এরিকএফ

যথেষ্ট ফর্সা। ওপি সম্প্রতি মন্তব্য করেছে যে অন্য প্রতিটি চরিত্র বৈধ তবে স্থান নয়। তবে আপনি এখনও আমার প্রথম পরামর্শটি ব্যবহার করতে পারেন
— গিয়াকোমো গারাবেলো

1

পাওয়ারশেল, 94 বাইট

-join($args|% t*y|%{if(1+($p=($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_))){$s[$p-bxor1]}else{$_}})

পরীক্ষার স্ক্রিপ্ট:

$f = {
-join($args|% t*y|%{if(1+($p=($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_))){$s[$p-bxor1]}else{$_}})
}

&$f "thisisastring1124"

ব্যাখ্যা

  • $args - যুক্তি স্ট্রিং
  • $args|% t*y- এর |ForEach-Object -Method ToCharArrayসমতুল্যে প্রসারিত হয়"$args".ToCharArray()
  • ($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_)- স্ট্রিংয়ের একটি অক্ষর সন্ধান করুন, যদি একটি অবস্থান বা -1 না পাওয়া যায় তবে ফিরে আসে। আসুন স্ট্রিংটি স্ট্রিংয়ের মধ্যে রাখুন যা প্রতিবেশী পজিশনে একটি জোড় চারি থাকে যা শেষ বিট দ্বারা পৃথক: 0 + 1, 2 + 3, 4 + 5 ....
  • if(1+($p=...)) - যদি অবস্থানটি পাওয়া যেত
  • $p-bxor1 - অবস্থান বিট xor 1

সঙ্গে দুর্দান্ত কৌশল -bxor1।
— অ্যাডমবর্কবার্ক

0

আর , 107 বাইট

function(s){a=utf8ToInt(s);l=a>96&a<107;n=a>47&a<58;a[n]=(a[n]-9)%%10+97;a[l]=(a[l]+4)%%10+48;intToUtf8(a)}

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

প্রথম প্রচেষ্টা, অবশ্যই অসম্ভব ...


chartrআমি এখানে আপনার বন্ধু, মনে হয়।
— জিউসেপে


1
@ জিউসেপ: দুর্দান্ত! আমি চার্ট ফাংশন সম্পর্কে জানতাম না। আপনার উত্তর হিসাবে এটি পোস্ট করুন, পদ্ধতির সম্পূর্ণ ভিন্ন;)
— digEmAll


0

K4 , 38 বাইট

সমাধান:

{(,/|x,a)(,/a:0 1_'10 11#'.Q`a`n)?x}@'

ব্যাখ্যা:

লুকআপ তালিকার প্রতিটি চরিত্র "abcdefghij1234567890"এবং তালিকা তারপরে সূচক "1234567890abcdefghijX"যেখানে Xমূল চরিত্র।

স্ট্রিংগুলি তৈরির জন্য আরও একটি ছোট উপায় খুঁজে পাওয়া দরকার ...

{(,/|x,a)(,/a:0 1_'10 11#'.Q`a`n)?x}@'
{                                  }@' / apply (@) lambda {} to each (')
                                 ?x    / lookup x in
         (                      )      / do this together
                          .Q`a`n       / index into .Q with a (gives a-z) and n (gives 0-9)
                   10 11#'             / take 10 from first list and 11 from second list
              0 1_'                    / drop 0 from first list and 1 from second list
            a:                         / save as a
          ,/                           / flatten
 (      )                              / do this together
     x,a                               / prepend x to a
    |                                  / reverse it
  ,/                                   / flatten

বোনাস:

38 বাইটের জন্য আর একটি সমাধান :

{(a,b,x)?[(b:1_11#.Q.n),a:10#.Q.a]x}@'



0

সেড, 44 বাইট

y/1234567890abcdefghij/abcdefghij1234567890/

কিছুটা বিরক্তিকর, আমি স্বীকার করি।

পরীক্ষামূলক:

$ echo 'thisisastring1124' | sed 'y/1234567890abcdefghij/abcdefghij1234567890/'
t89s9s1str9n7aabd
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.