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


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.