একই দৈর্ঘ্য, বিভিন্ন স্ট্রিং


53

চ্যালেঞ্জ

একটি খালি স্ট্রিং প্রদত্ত এস দৈর্ঘ্যের এল মুদ্রণযোগ্য হওয়া ASCII অক্ষর সম্পূর্ণভাবে গঠিত, আউটপুট দৈর্ঘ্য আরেকটি স্ট্রিং এল যে মুদ্রণযোগ্য হওয়া ASCII অক্ষর সম্পূর্ণভাবে গঠিত, কিন্তু সমান নয় এস

এই চ্যালেঞ্জের উদ্দেশ্যে, মুদ্রণযোগ্য ASCII চরটি ইউ + 0020 এবং ইউ + 007 ই এর মধ্যে একটি; এটি হল (স্থান) থেকে ~(টিলডে)। নিউলাইনস এবং ট্যাবগুলি অন্তর্ভুক্ত নয়।

উদাহরণস্বরূপ, প্রদত্ত "abcde", কিছু বৈধ ফলাফল হতে পারে:

  • "11111"
  • "abcdf"
  • "edcba"

তবে এগুলি অবৈধ হবে:

  • "abcde"
  • "bcde"
  • "abcde0"

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

"asdf"
"1111"
"       "
"~~~~~"
"abcba"
"1"
" "
"~"
" ~"
"~ "
"  0"
"!@#$%^&*()ABCDEFGhijklmnop1234567890"
" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"

বিধি

  • আপনি ধরে নিতে পারেন ইনপুটটি পুরোপুরি মুদ্রণযোগ্য ASCII অক্ষর নিয়ে গঠিত।
  • আপনি ধরে নিতে পারেন না যে ইনপুটটিতে সমস্ত 95 টি মুদ্রণযোগ্য অক্ষর নেই।
  • আপনি ধরে নিতে পারেন ইনপুটটিতে কমপক্ষে একটি অক্ষর রয়েছে এবং 256 টির চেয়ে কম লম্বা।
  • আউটপুট অবশ্যই মুদ্রণযোগ্য ASCII অক্ষর সমন্বিত থাকতে হবে। আপনি উদাহরণস্বরূপ, ইনপুটটির জন্য বাইট \ x7F আউটপুট করতে পারেন নি "~"
  • সম্ভাব্যতা 1 সহ ইনপুটটির তুলনায় আউটপুট অবশ্যই আলাদা হবে; এটি হল, আপনি ইনপুট থেকে আলাদা না হওয়া পর্যন্ত আপনি এলোমেলো স্ট্রিংগুলি তৈরি করতে পারেন তবে আপনি কেবল এল এলোমেলো অক্ষর আউটপুট করতে পারবেন না এবং আশা করি এটি আলাদা।
  • আউটপুটগুলিতে নিউলাইনগুলি নিষ্ক্রিয় করা হয় তবে আপনি স্ট্রিংয়ের জন্য গণনা করা হয়নি এমন একটি ট্রেলিং নিউলাইন আউটপুট করতে পারেন।

স্কোরিং

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


মনে রাখবেন যে "ইতিবাচক" খালি স্ট্রিং বাদ দেয়। অতিরিক্ত স্পষ্টতার জন্য, সম্ভবত "ননজারো" দিয়ে "পজিটিভ" প্রতিস্থাপন করবেন?
ক্যালকুলেটরলাইন

5
@ ক্যালকুলেটরফ্লাইন তবে এর মধ্যে নেতিবাচক দৈর্ঘ্যের স্ট্রিং / গুলি অন্তর্ভুক্ত থাকবে
ইটিএইচ প্রোডাকশনগুলি

1
... তাদের অস্তিত্ব নেই
ক্যালকুলেটরফলাইন


3
আরেকটি সহজ তবে তুচ্ছ নয়।
ওয়েজুন চাউ

উত্তর:


34

পাইথন 2 , 21 বাইট

lambda s:`s`[:len(s)]

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

ইনপুট স্ট্রিংয়ের স্ট্রিং প্রতিনিধিত্ব করে এবং ইনপুট স্ট্রিংয়ের দৈর্ঘ্যে ছিন্ন করে। একটি সাধারণ স্ট্রিংয়ের জন্য, এটি এটিকে 'উদ্ধৃতিতে রেখে দেয় এবং শেষের দিকে ছপ দেয়:

abc  ->   'abc'  ->  'ab
     rep        chop

নোট করুন যে নতুন স্ট্রিংটি শুরু হয় '। আসুন দেখান যে আউটপুট সর্বদা ইনপুট থেকে পৃথক হয়।

  • যদি ইনপুটটির কোনও না থাকে ', তবে আউটপুটটি শুরু হয় 'এবং ইনপুটটি হয় না।

  • যদি ইনপুটটিতে একটি 'এবং তবে না থাকে "তবে পাইথন "বাইরের উক্তিগুলির জন্য ব্যবহার করবে , প্রথম অক্ষরটি "ইনপুট স্ট্রিংয়ে নেই giving

  • যদি ইনপুটটিতে উভয় থাকে 'এবং "তারপরে বাইরের উদ্ধৃতিগুলি থাকে 'এবং প্রতিটি 'যেমন পালিয়ে যায় \'। ইনপুটটিতে যেখানে প্রথম "প্রদর্শিত হবে ', আউটপুটটিতে প্রাথমিকভাবে এবং কোনও সম্ভাব্য পলায়নের মাধ্যমে এটিকে ডান স্থানান্তরিত করা হয়েছে । এর অর্থ এটি "আউটপুটে সম্পর্কিত পদের সাথে কোনওটির সাথে মিলতে পারে না ।

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

মনে রাখবেন যে পাইথন অভিযোজিতভাবে "দ্বিতীয় ক্ষেত্রে স্যুইচ করেছিলেন এটি অত্যন্ত গুরুত্বপূর্ণ । যদি এটি এটি না করে তবে এটি তিন অক্ষরের ইনপুটটিতে ব্যর্থ হবে '\'। বা, ব্যবহার করে ফিক্স শো স্ট্রিংয়ের আর কোনও উপসর্গ '। সুতরাং, এই পদ্ধতিটি বেশিরভাগ ভাষার জন্য কাজ করবে না।


তিল len(s)না করে ইন্ডেক্স করার যুক্তি কি -2?
জুলিয়ান ওল্ফ

1
@ জুলিয়ানওল্ফ উভয় 'এবং একটি ইনপুট জন্য "2 টিরও বেশি অক্ষর যুক্ত করা হবে কারণ উদ্ধৃতিগুলি এড়ানো দরকার।
অ্যান্ডারস ক্যাসরগ

জ্ঞান দেয়; এটা বিবেচনা করা হয়নি। ধন্যবাদ!
জুলিয়ান ওল্ফ

আপনি 16 টি অক্ষরে নামার [2:]পরিবর্তে ব্যবহার করতে পারেন [:len(s)]
xbarbie

@ এক্সবার্বি অক্ষরগুলি পালানোর প্রয়োজন হলে এটি সর্বদা একই দৈর্ঘ্য দেয় না।
xnor


15

জাভাস্ক্রিপ্ট (ES6), 37 33 36 29 26 18 21 19 19 বাইট

s=>s.slice(1)+ +!+s

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

-4 বাইট ETHProductions ধন্যবাদ

-7 + -5 + -2 বাইট ক্যালকুলেটরফলাইনে ধন্যবাদ

-3 বাইট ধন্যবাদ রিক হিচককের জন্য

প্রথম অক্ষরটিকে শেষের দিকে নিয়ে যায় এবং এটি সংখ্যাসূচক এবং অ-শূন্য এবং অন্যথায় 1 হলে এটি 0 তে সেট করে।

ব্যাখ্যা

s=>                    anonymous function with parameter s
                 +s    convert s to a number
                !      not (converts to boolean; relevant: 0->true,1->false)
               +       convert !+s back to number (true->1, false->0)
   s.slice(1)+         prefix the rest of the string
              ␣        needed to avoid the +s combining

প্রমাণ

কারণ দ্বিতীয় চরটি প্রথম হয়, তৃতীয় চরটি দ্বিতীয় হয়ে যায়, ইত্যাদি সমস্ত অক্ষর একই হতে হবে। শেষের চরটি কেবল একটি 0 বা 1 1 হতে পারে, তাই পুনরাবৃত্তি চরটি 0 বা 1 হতে হবে তবে 0 এর যে কোনও স্ট্রিং শেষে একটি 1 তৈরি করে এবং তদ্বিপরীত; সুতরাং, এটির ফলাফলের সমান একটি ইনপুট তৈরি করা অসম্ভব। -ETHProductions

প্রাক্তন সংস্করণ এবং ব্যাখ্যাগুলির সম্পাদনাগুলি দেখুন।

f=
s=>s.slice(1)+ +!+s

console.log(f("000"))
console.log(f("111"))
console.log(f("001"))
console.log(f("110"))
console.log(f("~"))
console.log(f("111111111111111111111111111111111111111111111111111"))
console.log(f("Hello world!"))
console.log(f("23"))
console.log(f(" "))
console.log(f("1x"))


13

জেলি , 3 বাইট

~Ṿṁ

আউটপুট হল অঙ্ক, কমা এবং হাইপেন-বিয়োগের অক্ষরের একটি স্ট্রিং, যার প্রথম অক্ষরটি ইনপুট স্ট্রিংয়ের প্রথম অক্ষর থেকে পৃথক হবে।

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

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

~Ṿṁ  Main link. Argument: s (string)

~    Map bitwise NOT over the characters c in s.
     This attempts to cast c to int and then apply bitwise NOT, mapping
     '0', ..., '9' to 0, ..., 9 (before ~), then -1, ..., -10 (after ~).
     For non-digits, the attempt fails, mapping c to 0.
 Ṿ   Uneval, yielding a comma-separated string of integers in [-10, ..., 0].
     The first character will be '-' if s starts with a digit and '0' if not.
  ṁ  Mold; truncate the result to the length of s.

6

হাস্কেল , 20 বাইট

map$head.show.(<'M')

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

একটি স্ট্রিং রূপান্তর করে Fএবং T। বিষয়গুলি হ'ল চরিত্রগুলি Fএবং Tএকে অপরকে রূপান্তরিত করে। চরিত্রটি Mপাওয়ার চেয়ে কম কিনা তা পরীক্ষা করে এটি করা হয় Trueবা Falseতারপরে স্ট্রিং প্রতিনিধিত্বের প্রথম অক্ষর গ্রহণ করে।


হাস্কেল , 23 বাইট

q '~'=' '
q _='~'
map q

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

স্থান হিসাবে ~বাদে প্রতিটি চরিত্রকে প্রতিস্থাপন করে ~


স্থানটির তাত্পর্য কী q '~'? কেন এটি সরানো যাবে না?
সাইয়েস

@Cyoce Haskell, অনুমতি দেয় 'শনাক্তকারী একটি চরিত্র, তাই q'~'=' 'হিসাবে পার্স করা হবে q' ~ '=' '(ক আভিধানিক ত্রুটিটি প্রতিবেদন করার সময় কারণ গত 'তুলনারহিত।)
Orjan Johansen

5

হোয়াইটস্পেস, 59 বাইট

দৃশ্যমান উপস্থাপনা

NSSNSSSTSSSSSNSNSSNSSNSTNTSTTTTSSTNTTSNSNSTSSSNSSSNTNSSNSNN

এর মানে কি:

প্রতিটি চরিত্রের জন্য এটি পড়ার জন্য এটি একটি স্থান মুদ্রণ করে, যখন এটি কোনও স্থান নয়, তারপরে এটি একটি @ মুদ্রণ করে।

disassembly:

loop:
    push 32
     dup
      dup
       dup
        ichr
       get
       sub
      jn not_32
     dup
      add
not_32:
     pchr
    jmp loop

হোয়াইটস্পেসে কোনও সমাধান দেখতে সর্বদা সুন্দর। বিশেষত যখন আপনি সাধারণত এটি দেখতে অক্ষম হন । +1
জোশিয়াহ উইনস্লো

চমৎকার উত্তর! আমি কাঠামোর চেয়ে ছোট কিছু নিয়ে আসার চেষ্টা করেছি, কিন্তু কিছুই পাইনি। কিন্তু আপনি গলফ পরিবর্তন করে 2 বাইট করতে পারেন SSSTSSSSSN (push 32)করতে SSSTSSTN (push 9)এবং TSSS (add)করতে TSSN (multiply)। এটি 9 টির উপরে ইউনিকোড মানের প্রতিটি অক্ষরের জন্য একটি ট্যাব এবং একটি ইউনিকোড মানের প্রতিটি অক্ষরের জন্য একটি Q(9 * 9 = 81) মুদ্রণ করবে 0..9অনলাইনে কাঁচা 57 বাইট ব্যবহার করে দেখুন , বা অতিরিক্ত হাইলাইটিং এবং ব্যাখ্যা সহ অনলাইনে চেষ্টা করুন
কেভিন ক্রুইজসেন

উপরে আমার মন্তব্য উপেক্ষা করুন। চ্যালেঞ্জের জন্য কোনও ট্যাব মুদ্রণযোগ্য ASCII চরিত্র হিসাবে বিবেচিত হয় না ..
কেভিন ক্রুইজসন

5

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

Qo!V!

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

ব্যাখ্যা

Q     % Implicitly input a string. Add 1 to each code point.
o     % Parity: 0 if odd, 1 if even. Note that '0' has ASCII code 48, so after
      % having added 1 it now gives 1. Similarly. '1' has ASCII code 49, so it
      % now gives 0. All other chars give 0 or 1. 
!V!   % Convert each number to the corresponding char. Implicitly display

সিজেমে l'0f=এটি 5 ( : (যদি এটি আমার মনে হয় যা এটি করে তবে)
মার্টিন এণ্ডার

@ মার্টিনেন্দর হ্যাঁ, এটি ঠিক :-) আমি কেবল একটি ব্যাখ্যা যুক্ত করেছি
লুইস মেন্ডো

5

হাস্কেল , 19 বাইট

একটি বেনামী ফাংশন যা গ্রহণ করে এবং প্রদান করে a String। হিসাবে ব্যবহার করুন (map$(!!1).show.succ) "1111"

map$(!!1).show.succ

এটি অনলাইন চেষ্টা করুন! (@ Xnor এর পরীক্ষার জোতা ব্যবহার করে))

  • ইনপুট স্ট্রিংয়ের প্রতিটি অক্ষরের জন্য, চরিত্রটিকে বাড়িয়ে তোলে, তারপরে অক্ষরটিকে আক্ষরিক বিন্যাসে রূপান্তরিত করে, তারপরে আক্ষরিকের দ্বিতীয় অক্ষরটি গ্রহণ করা হয়, যা শুরুর 'উদ্ধৃতির ঠিক পরে অক্ষর ।
  • প্রায় সমস্ত মুদ্রণযোগ্য অক্ষরের জন্য, এটি কেবল বর্ধিত চরিত্রের ফলাফল। ব্যতিক্রমগুলি &এবং ~যা পরিবর্তে দেয় \, কারণ তাদের উত্তরসূরীরা 'এবং \DELচরিত্রের অক্ষরে অক্ষরে পালিয়ে যায়।

অতিরিক্ত বাইটের headজায়গায় বেশ নিশ্চিতভাবে ব্যবহার করা যেতে পারে(!!1)
জুলিয়ান ওল্ফ

না, headহয় (!!0)না (!!1)। এটি চরিত্রটিতে ব্যর্থ হবে '
janর্জন জোহানসেন

আহ ঠিক. আমি কেবল অজগর উত্তরটি পড়ছিলাম এবং ভুলে গিয়েছিলাম যে उद्धरणগুলিতে সাধারণত বিশেষ চিকিত্সার প্রয়োজন হয়।
জুলিয়ান ওল্ফ

4

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

žQDÀ‡

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

ব্যাখ্যা

প্রতিটি চরকে পরের মুদ্রণযোগ্য আসকি চরের সাথে প্রতিস্থাপন করে, টিলডে থেকে স্থানটিতে মোড়ানো।

žQ     # push a string of printable acsii chars (space to tilde)
  D    # duplicate
   À   # rotate left
    ‡  # translate

4

ভি , 7 বাইট

íÁ/a
g?

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

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

মুদ্রণযোগ্য এএসসিআইআই সমন্বিত সমস্ত স্ট্রিং বিবেচনা করুন। প্রতিটি স্ট্রিংয়ে অবশ্যই 1) বর্ণানুক্রমিক অক্ষর বা 2) কোনও বর্ণমালা অক্ষর সমন্বিত থাকতে হবে।

সুতরাং এই প্রোগ্রামটি যেভাবে কাজ করে তা হ'ল প্রথমে একটি অ-বর্ণমালা অক্ষরে রূপান্তর করা 'a'এবং তারপরে ইনপুট স্ট্রিংয়ে ROT13 সম্পাদন করা।

í       " Substitute:
 Á      "   A non-alphabetic character ([^a-zA-Z])
  /     "   with
   a    "   the letter 'a'
g?      " Perform ROT13 on...
        "   (Implicit) the current line.

আপনার 9একা মত এমন একটি সংখ্যা থাকলে এটি বিরতি দেয় , যেখানে এটি বৃদ্ধি করে স্ট্রিংয়ে অন্য একটি চরিত্র যুক্ত করে
nmjcman101

@ nmjcman101 আহ, এটি একটি ভাল বিষয়। আমি আবার ফিরিয়ে দিয়েছি
DJMcMayhem

আমি যদিও
রট

4

সি (জিসিসি) , 22 বাইট

f(char*s){*s=65+*s%2;}

একটি স্ট্রিং পয়েন্টার নেয় এবং জায়গায় প্রথম চরটি সংশোধন করে।

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


1
অপেক্ষাকৃত ছোট: *s=159-*s। সর্বদা সর্বশেষ বিট পরিবর্তন করে, তাই কখনও একই চরিত্রটি দেয় না। নোট করুন159 = ' ' + '~'
celtschk

আমি মনে করি আপনার অর্থ 158 = '' + '~'। 159-32 = 127, যা সুযোগের বাইরে একটি চরিত্র হবে। তবে ভাল ধারণা।
কম্পুট্রোনিয়াম

@celtschk প্রেরণাগুলি কাজ করতে পারে না, কারণ মুদ্রণযোগ্য chraracters এর একটি অদ্ভুত পরিমাণ (95) আছে, তাই তাদের মধ্যে কমপক্ষে একটি নিজেই মানচিত্র তৈরি করবে।
ডেনিস

@ কমপোট্রোনিয়াম: ওফস, আপনি ঠিক বলেছেন, আমি চরিত্রের কোডটি ~ভুল পেয়েছি ।
celtschk

4

সি (জিসিসি) , 20 বাইট

ডেনিসের উত্তর দেখেছি, 2 বাইটের প্রয়োজনীয় উন্নতি ভেবেছিল

f(char*s){*s^=*s/3;}

এটি অনলাইন চেষ্টা করুন! (ডেনিসের পাদলেখ।)

আসলটির মতো, স্ট্রিংয়ের প্রথম চরিত্রটি স্থান পরিবর্তন করে তবে এর মানটি 3 দিয়ে বিভক্ত করে তোলে (ক্ষুদ্রতম সংখ্যাটি যা কাজ করে 2 2 একক অক্ষরকে ব্যর্থ করে 'U'যা প্রিন্টযোগ্য নয় 127 দেয়)


4

পাইথন 2 , 25 বাইট

lambda s:`s<'T'`[0]+s[1:]

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

অ্যান্ডারস কাসেরগ Trueবা থেকে প্রথম চরিত্রটি বের করে একটি বাইট সংরক্ষণ করেছিলেন False


আমি '?'2 অঙ্কের চারকোডে পরিবর্তনের পরামর্শ দেব, তবে পাইথন সেই ভাষাগুলির মধ্যে একটি নয় যেখানে আপনি এটি করতে পারেন :(
ক্যালকুলেটরফলাইন

একটি বাইট সংরক্ষণের বৈকল্পিকগুলি (তবে পাইথন 3 সামঞ্জস্যতা হ্রাস করছে): lambda s:`+(s<'1')`+s[1:]বাlambda s:`s<'T'`[0]+s[1:]
অ্যান্ডারস কাসরগ


3

অক্টাভা , 19 18 বাইট

@(s)['',(s<66)+65]

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

ব্যাখ্যা:

@(s)                 % Anonymous function taking a string s as input
         s<66        % A boolean vector with `1` for all characters below ASCII-66.
        (s<66)+65    % Add 65 to this, so that all elements that are 32-65 are now 66.
                     % All other elements are 65 
    ['',         ]   % Implicitly convert the list of 65 and 66 to the letters A and B

3

সিজেম , 5 বাইট

l)iA%

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

শেষ অক্ষরটিকে তার কোড পয়েন্টে রূপান্তর করে এবং সেই মডুলোটি 10 ​​নিয়ে যায়। এটি শেষ অবস্থানের অ-অঙ্কের অক্ষরের জন্য স্পষ্টভাবে আলাদা। তবে সংখ্যাগুলি কোড পয়েন্ট 48 এ শুরু হয়, সুতরাং 10 মডগুলি গ্রহণ করলে তা চক্রাকারে বাম দিকে সরে যায় এবং তাই সর্বশেষ অক্ষরটি সর্বদা পরিবর্তিত হয়।




3

কিউবিক্স , 10 বাইট

..@|i?2%)O

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

প্রতিটি চরের জন্য, 1চরের একটি সমান কোড পয়েন্ট থাকলে প্রিন্ট করে 2; 1একটি বিজোড় কোড পয়েন্ট এবং 2একটি সমান রয়েছে, সুতরাং আউটপুট কখনই ইনপুটটির সমান হবে না।

ব্যাখ্যা

এই কোডটি নীচের ঘনক্ষেতের সাথে মিল রাখে:

    . .
    @ |
i ? 2 % ) O . .
. . . . . . . .
    . .
    . .

আইপি (নির্দেশ পয়েন্টার) পূর্ব বাম দিকে মুখের উপরের-বাম কোণে শুরু হয়। এটি নির্দেশের এই সিরিজ অনুসরণ করে:

i     Grab a char-code from STDIN and push it to the stack (-1 if there is no more input).
?     If the top item is negative, turn left and hit @ which ends the program.
      If it's positive (any printable ASCII char), turn right. The IP runs through a bunch
        of no-ops, then hits:
)     Increment the top item.
|     Mirror the IP's direction horizontally (turns it around).
)     Increment the top item again. The IP then wraps around again until it hits:
?     The top item is positive, so turn right.
2     Push a 2 to the stack.
%     Push the modulus of the top two items (0 for even char-code, 1 for odd).
)     Increment the result (now 1 for even char-code, 2 for odd).
O     Output as a number. The IP wraps back around to the i and the process starts again.

3

এলিস , 9 বাইট

#oi/
t i@

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

ব্যাখ্যা

এই ধারণাটি মার্টিন ইন্ডারের সিজেএম সাবমিশন থেকে নেওয়া হয়েছিল। প্রথম অক্ষরটি একটি কোড পয়েন্ট হিসাবে নেওয়া হয়, 10 হ্রাস মোড এবং আউটপুট শেষে সরানো হয়। যেহেতু একটি চরিত্র পরিবর্তন করা হয়েছিল তাই অক্ষরকে অনুমতি দেওয়ার ফলে একই স্ট্রিং ফিরে পাওয়া যাবে না।

#   skip next command
o   (skipped)
i   push first byte onto stack
    STACK: [97]
/   reflect to SE, switch to ordinal mode (implicit reflect to SW)
i   push remaining input onto stack as string (implicit reflect to NW)
    STACK: [97, "sdf"]
o   output top of stack (implicit reflect to SW)
    STACK: [97]
t   implicitly convert code point to decimal string, and extract last character
    (implicit reflect to NE)
    STACK: ["9", "7"]
o   output this last digit (implicit reflect to SE)
i   push empty string, since there is no more input to take (implicit reflect to NE)
/   reflect to S, switch to cardinal mode
@   terminate

t10 মডের জন্য ব্যবহার করা সত্যই চালাক, দুর্দান্ত। :)
মার্টিন ইন্ডার

3

পুশি , 1 বাইট

Q

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

এটি প্রদত্ত স্ট্রিংটিকে ASCII অক্ষর কোডের তালিকায় রূপান্তর করে, তাদেরকে (মডুলার ইনডেক্সিং) বড় হাতের বর্ণমালায় সূচক করে, ফলাফলটি মুদ্রণ করে pr মূলত, প্রতিটি চরিত্র nম্যাপ করা হয় chr(ord(n) % 26 + 65)। ম্যাপিং কীভাবে কাজ করে তা দেখতে আপনি এই প্রোগ্রামটি ব্যবহার করতে পারেন ।

আউটপুট:

  • অক্ষরগুলি সরাসরি নতুনগুলিতে ম্যাপ করা হওয়ায় সর্বদা ইনপুটটির সমান দৈর্ঘ্য হবে।
  • সর্বদা কেবল মুদ্রণযোগ্য এএসসিআইআই অক্ষর থাকবে (কারণ এটিতে কেবল বড় হাতের অক্ষর রয়েছে)
  • সবসময় ইনপুট ভিন্ন হবে, যেমন আছে কোন সম্ভাব্য ইনপুট অক্ষর nযেমন যে chr(ord(n) % 26 + 65) == n, এই জন্য যেমন সত্য হতে পারে সেখানে একটা পূর্ণসংখ্যা হওয়া আবশ্যক xযেমন যে 26x = 65, যার জন্য সেখানে কোন সমাধান নেই।

1 বাইট

q

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

এই উত্তরটি হুবহু একই, এটি বড় হাতের বর্ণমালার অক্ষরের পরিবর্তে ছোট বর্ণমালার অক্ষরে মানচিত্র করে । সেখানে কোন সম্ভাব্য ইনপুট চরিত্র এখনও বৈধ যেমন যে ।nchr(ord(n) % 26 + 97) == n


2

ব্রেন-ফ্লাক , 53 বাইট

এর জন্য +1 অন্তর্ভুক্ত -c

([(((()()()()){}){}){}()]({}())){{}(<({}[()()])>)}{}

এটি স্থান না থাকলে প্রথম অক্ষরটি হ্রাস পাবে, সেক্ষেত্রে এটি প্রথম চরিত্রটিকে বাড়িয়ে তুলবে।

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

([(((()()()()){}){}){}()]      )                     # Push: input + 1 != 33 on top of...
                         ({}())                      #    input + 1
                                {{}(<          >)}{} # If (input + 1 != 33)
                                     ({}[()()])      #   Push: (input + 1) - 2

2

জেলি , 4 বাইট

^1Ṿ€

একটি ডিজিট স্ট্রিং আউটপুট দেয়। কোনও আউটপুট অক্ষর সংশ্লিষ্ট ইনপুট অক্ষরের সমান হবে না।

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

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

^1Ṿ€  Main link. Argument: s (string)

^1    XOR each character c in with 1.
      This attempts to cast c to int, mapping '0', ..., '9' to 0, ..., 9.
      For non-digits, the attempt fails, mapping c to 0.
      After XORing with 1, we get 1, 0, 3, 2, 5, 4, 7, 6, 9, 8 for '0', ..., '9', 
      and 1 for all non-digits.
  Ṿ€  Uneval each; mapping 0, ..., 9 to '0', ..., '9'. This yields a character
      array, which is Jelly's string type.
      Note that no character is mapped to itself.


2

পিএইচপি, 30 27

<?=strtr($a=$argn,$a,$a^1);

প্রতিটি চরকে প্রথম চরের সমান চার্জের সাথে পরিবর্তন করে যা সর্বনিম্ন তাৎপর্যপূর্ণ বিট উল্টে যায়।



এটি আসলে প্রথম চরের সর্বনিম্ন উল্লেখযোগ্য বিটটি ফ্লিপ করে না; এটি একটি পূর্ণসংখ্যা থেকে এটি পরিবর্তন করে এবং অন্তত গুরুত্বপূর্ণ বিট ফ্লিপ যে । হ্যাঁ, @ ক্যালকুলেটরফলাইন, আউটপুটটিং ~কাজ করে 1
ETH প্রোডাকশনগুলি 30:57

উহু. কি !$aবা ~$aকাজ করে?
ক্যালকুলেটরফলাইন

@ এথ প্রডাকশনগুলি আমি বিছানায় যাওয়ার খুব শীঘ্রই শেষ সম্পাদনাটি করেছি এবং এটি আপডেট করার সময় পাইনি। অবশ্যই আপনার ডান এটি প্রথমে পূর্ণসংখ্যায় রূপান্তরিত হয় এবং তাই প্রথম চরটি পরিবর্তন করতে পারে না তবে সম্ভবত দ্বিতীয় যেমন "12" "13" হয়ে যায়।
ক্রিস্টোফ

@ ক্যালকুলেটরফলাইন দু: খজনকভাবে দু'টিই ব্যর্থ !$aহয়ে "12"যায় "12"কারণ falseএকটি খালি স্ট্রিংয়ে রূপান্তরিত হয় যাতে কোনও কিছুই প্রতিস্থাপন না করে এবং ~$aসমস্ত কিছুকে ছাপিয়ে না যায় কারণ প্রথমে ইনটকে ~"12"রূপান্তরিত করে না তবে আক্ষরিকভাবে স্ট্রিংয়ের সমস্ত বিটগুলি ফ্লিপ করে।
ক্রিস্টোফ


2

ব্র্যাচল্যাগ , 9 বাইট

{¬Ṣ|∧Ịh}ᵐ

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

ব্যাখ্যা

এটি সমস্ত অক্ষরকে একটি স্থান দ্বারা প্রতিস্থাপিত করে, স্থানগুলি বাদ দিয়ে যা এটি প্রতিস্থাপন করে "0"

{      }ᵐ      Map on each char of the Input
 ¬Ṣ              The Input char is not " ", and the Output char is " "
   |             Or
    ∧Ịh          The Output char is "0"

2

পিএইচপি <7.1, 31 বাইট

for(;~$c=$argn[$i++];)echo$c^1;

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


Invalid the বাইট সমাধানটি অপসারণ করুন কারণ এটি অবৈধ।
ক্যালকুলেটরফলাইন 20

"1", "10", "101" ইত্যাদির জন্য ব্যর্থ হয় আপনি কেবল স্ট্রিং দৈর্ঘ্যের উপর নির্ভর করতে পারবেন না।
ক্যালকুলেটরলাইন

@ ক্যালকুলেটরফলাইন "1" আউটপুটস "0", "10" আউটপুট "01", "101" আউটপুট "010"। সমস্যা কোথায়?
ক্রিস্টোফ

@ ক্যালকুলেটরলাইন "1" => 0, "10" => 01, "101" => 010 কোথায় ব্যর্থ হয়েছে?
জার্গ হালসারম্যান 20

1
পিএইচপি 7.1 ফলন A non-numeric value encountered। এবং আপনি এর ~পরিবর্তে ব্যবহার করতে পারেন a&
তিতাস

2

গল্ফস্ক্রিপ্ট, 3 বাইট

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

)5%

সর্বশেষ চরিত্রের এএসসিআইআই মান মডুলো 5 নিন এবং ফলাফলটির সাথে সর্বশেষ অক্ষরটি প্রতিস্থাপন করুন। এটি স্পষ্টতই অ-অঙ্কের অক্ষরের জন্য কাজ করে তবে শেষ বর্ণটি যদি একটি অঙ্ক হয় তবে এটিও পরিবর্তন করে ("0" মোড 5 = 3, "1" মোড 5 = 4 ইত্যাদি)।

এটি একই দৈর্ঘ্য বজায় রেখে 7 বা 9 এর সাথেও কাজ করবে।

ইয়াও! আমার কাছে এখানে সেরা সমাধানের মতো গল্ফস্ক্রিপ্ট সমাধান রয়েছে!


2

ফানকি , 26 22 বাইট

s=>s::gsub("."a=>1&~a)

~aকোন অ-অঙ্কের জন্য NaN প্রদান করবে তা গণনা করে । তারপর 1&এটা হয় 0 বা 1 থেকে সীমিত করে অঙ্ক 0 জন্য, এই হতে হবে 1, এবং 1এই হতে হবে 0। সুতরাং এই স্ট্রিং সর্বদা অনন্য।

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

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