গণনা এবং বানান আপ


26

এমন একটি প্রোগ্রাম লিখুন যা তার ইনপুট হিসাবে একটি স্ট্রিং নেয় যা নিম্নলিখিত বৈশিষ্ট্যগুলির সাথে স্ট্রিংকে আউটপুট করে।

  • যদি স্ট্রিংয়ের একটি অক্ষর বড় হাতের অক্ষর (ASCII 41-5A) হয়, তবে অক্ষরটি প্রতিটি অক্ষর পর্যন্ত একটি স্ট্রিং দ্বারা প্রতিস্থাপিত হয় এবং উপরের ক্ষেত্রে মূল অক্ষর সহ। উদাহরণস্বরূপ, যদি ইনপুট স্ট্রিং হয় Iতবে আউটপুটটি হবে ABCDEFGHI
  • একইভাবে, কোনও অক্ষর যদি ছোট হাতের অক্ষর হয় (ASCII 61-7A), তবে চরিত্রটি একইভাবে প্রতিস্থাপন করা হবে। iদ্বারা প্রতিস্থাপন করা হবে abcdefghi
  • যদি কোনও অক্ষর একটি সংখ্যা হয় (ASCII 30-39), তবে অক্ষরটি প্রতিটি সংখ্যা থেকে শুরু করে সংখ্যা পর্যন্ত 0গণনা করা হবে replaced
  • যদি ইনপুটটিতে স্বতন্ত্র স্বতন্ত্র অক্ষর থাকে তবে প্রতিস্থাপনের ক্রমগুলি একসাথে একত্রিত হয়।
  • অন্য সমস্ত অক্ষর পরিবর্তন ছাড়াই মুদ্রিত করা হয়।

নমুনা ইনপুট (ফাঁকা লাইন দ্বারা পৃথক)

AbC123

pi=3.14159

Hello, World!

নমুনা আউটপুট

AabABC010120123

abcdefghijklmnopabcdefghi=0123.0101234010123450123456789

ABCDEFGHabcdeabcdefghijklabcdefghijklabcdefghijklmno, ABCDEFGHIJKLMNOPQRSTUVWabcdefghijklmnoabcdefghijklmnopqrabcdefghijklabcd!

এটি কোড গল্ফ, ফেলা। স্ট্যান্ডার্ড বিধি প্রয়োগ। বাইটস মধ্যে সংক্ষিপ্ত কোড।


লিডারবোর্ডটি দেখতে, "কোড স্নিপেট দেখান" ক্লিক করুন, নীচে স্ক্রোল করুন এবং "কোড স্নিপেট চালান" ক্লিক করুন। অপ্টিমাইজার দ্বারা নির্মিত স্নিপেট।


10
সিক্যুয়ালের আইডিয়া: এই রূপান্তরটি পূর্বাবস্থায় ফেরা করুন।
ইটিএইচ প্রডাকশনগুলি 27:58

2
@ ইথ প্রডাকশন সম্ভবত, যদিও এখানকার উপায়টি আমার কাছে ভাল বলে মনে হচ্ছে কারণ এটি কোনও ইনপুট নিতে পারে; বিপরীতে যদি ইনপুট ছিল Hello, World!কি?
আর্কটরাস

আমাদের কি ইনপুট স্ট্রিংয়ে NUL (ascii 0x00) অক্ষর সমর্থন করতে হবে?
নিমি

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

1
এটি সম্পূর্ণ সত্য - আমি এই ধারণাটি তৈরি করি যে "" যদি কোনও স্ট্রিং রূপান্তরটির ফলস্বরূপ হতে পারে তবে এটিকে বিপরীত করুন Otherwise নইলে রূপান্তরটি প্রয়োগ করুন। " - এটি আপনার চ্যালেঞ্জ, আপনি যতক্ষণ বেছে বেছে বেছে বেছে কোনও আইন নির্দিষ্ট করতে পারেন (ক) তারা সামঞ্জস্যপূর্ণ এবং (খ) সেগুলি যাচাইযোগ্য এবং সমাধানের জন্য গণিতের সম্পূর্ণ নতুন শাখার প্রয়োজন নেই। পার্শ্ব নোট: জ্বলজ্বল করা (খ) আকর্ষণীয় হবে; আপনি কখনই বুঝতে পারবেন না যে কোনও ব্যক্তি দুর্ঘটনাক্রমে কোনও এনপি সমস্যার জন্য বহু-কালীন অ্যালগরিদম নিয়ে কম্পিউটার বিজ্ঞানের বিপ্লব ঘটাবেন - যা এখানে 4 টি বাইট সাশ্রয় না করা পর্যন্ত এখানে যুক্তিসঙ্গত।
জেক

উত্তর:


11

পাইথ, 19 বাইট

sXzsJ+rBG1jkUTs._MJ

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

ব্যাখ্যা

sXzsJ+rBG1jkUTs._MJ
      rBG1            the list ["abc...xyz", "ABC...XYZ"]
     +    jkUT        appends the string "0123456789"
    J                 save this list of 3 strings in J
   sJ                 join the strings in J
               ._MJ   create all prefixes of the strings in J
              s       and combine them to one list
 XzsJ         s._MJ   translate the input string, chars from sJ
                      get translated to the correct prefix,
                      chars that don't appear in sJ don't get translated
s                     join all resulting translation strings

8

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

a=[]
for c in raw_input():d=ord(c);a+=range(max(d&96|1,48),d)*c.isalnum()+[d]
print bytearray(a)

7

টিস্ক্রিপ্ট , 24 বাইট 26 28

চা স্ক্রিপ্টটি গল্ফ করার জন্য জাভাস্ক্রিপ্ট

xl(#(i=lN()1)h(ii(l)+1))

খুব খাটো

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

ব্যাখ্যা

x.l(#            // Loops through each character of the string

     (i=l.N()1)  // Determines whether a character is alphanumeric
                 // Will return A-Z, a-z or 0-9 depending on result
                 // Assigns to variable i

     .h(         // Get characters up to...
        i.i      // where the character is in "i"
     ) + 1       // Increased by one
)

6

রুবি, 137 87 82 76 67 55 বাইট

অসম্পূর্ণ, তবে আপনি প্যাটার্নটি দেখতে পাচ্ছেন।

$><<gets.gsub(/[a-z0-9]/i){[*" 0Aa"[$&.ord/32]..$&]*""}

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

সম্পাদনা 2: প্রচুর অতিরিক্ত স্পেস ছিল।

সম্পাদনা 3: 12 বাইট গল্ফ করার জন্য মানটওয়ার্ককে ধন্যবাদ!


1
$><<gets.gsub(/[a-z0-9]/i){[*" 0Aa"[$&.ord/32]..$&]*""}
manatwork

@ মান্যাট ওয়ার্ক এই চালাক!
পিটার লেনকেফি

4

পাইথন 2, 145 140 133 103 102 বাইট

তালিকা বোধগম্যতা ব্যবহার করে খুব অবিচ্ছিন্ন একটি বেনামে ফাংশন। আমার মনে হচ্ছে যুক্তিটি আরও ছোট হওয়া উচিত, আমি চেষ্টা করে কিছু বের করব।

lambda k:''.join([c,`map(chr,range(48+17*(c>'@')+32*(c>'`'),ord(c)+1))`[2::5]][c.isalnum()]for c in k)

ব্যবহার করার মতো একটি নাম দেওয়া উচিত f=...


@ মেগো ওহ, হা! কোনও উদ্বেগ নেই :)
কেড

4

হাস্কেল, 95 91 86 60 বাইট

c#(a:o:r)|c<a||c>o=c#r|1<2=[a..c]
c#_=[c]
f=((#"AZaz09")=<<)

ব্যবহারের উদাহরণ: f "pi=3.14159"->"abcdefghijklmnopabcdefghi=0123.0101234010123450123456789"

এটা কিভাবে কাজ করে: ইনপুট স্ট্রিং কপি প্রত্যেক গৃহস্থালির কাজ গ যদি না C- এর কোনো ইন-মধ্যে A/ Z, a/ zবা 0/ 9এবং যদি তাই হয় একটি তালিকা নেওয়া [<first char in pair> ... <c>]

সম্পাদনা করুন: @ জগারব অনেকগুলি বাইট সংরক্ষণ করেছেন। ধন্যবাদ!


আমি মনে করি আপনি পুরোপুরি সংজ্ঞা দিতে c#_=[c]এবং এড়িয়ে যেতে পারেন t
Zgarb

@ জাগারব: হ্যাঁ এবং তারপরেও sঅতিরিক্ত অতিরিক্ত। অনেক ধন্যবাদ!
নিমি

4

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

কোন অক্ষর ব্যবহার করতে হবে তা পরীক্ষা করতে স্ট্রিং তুলনা ব্যবহার করে।

s=>s.replace(/[A-Z0-9]/gi,c=>(a=btoa`Ó]·ã»óÖq×£Y§¢«²Û¯Ã³`,(c>'Z'?a:a.toUpperCase()).split``.filter(x=>x<=c&(x>'9'|c<'A')).join``))

অনলাইন ডেমো ফায়ারফক্স এবং ক্রোমে পরীক্ষিত।

সম্পাদনা: প্রতিস্থাপন 5 বাইট সংরক্ষিত a='0123456789abcdefghijklmnopqrstuvwxyz'সঙ্গে

a=btoa`Ó]·ã»óÖq×£Y§¢«²Û¯Ã³`

3

পিএইচপি, 146 বাইট

Golfed

function f($n,&$l){for(;$c=$n[$r],$b=0,$d=ord($c);$r++,$b?:$l.=$c)foreach([58=>48,91=>65,123=>97] as $m=>$i)while($d<$m&&$d>=$i)$b=$l.=chr($i++);}

সংশোধন 1: অর্ড রেঞ্জগুলি সরাসরি পূর্বাভাসে রাখুন। বর্ধিত অর্ড রেঞ্জ সর্বাধিক এবং পরিবর্তিত $d<=$mহয়েছে $d<$m। এর forপরিবর্তে চরগুলি পুনরাবৃত্তি করতে foreachএবং ব্যবহার করে str_split{}কোড সরিয়ে সমস্ত সরানো হয়েছেfor

Ungolfed

function f($input,&$output){
foreach (str_split($input) as $char){
  $ord = ord($char);
  $ords = [57=>48,90=>65,122=>97];
  $b = 0;
  foreach ($ords as $max=>$min){
     while ($ord<=$max&&$ord>=$min){
         $b = $max;
         $output .= chr($min);
         $min++;
     }
  }
  $b ?: $output.=$char;
}
};

$output = NULL;
$input = "pi=3.141592";
f($input,$output);
echo $output;

ব্যাখ্যা: অ্যারেতে বিভক্ত স্ট্রিং। যদি আসকি মানটি একটি পরিসরে পড়ে (এজেড, এজেড, ০-৯), তারপরে পরিমার নূন্যতম থেকে চরের আসকি মান পর্যন্ত একটি কাউন্টার বাড়ান, প্রতিটি মান সংযোজন না করে যতক্ষণ না আপনি চরের এসকি মান পর্যন্ত পৌঁছান।

আমি পাস &$varকরেছি সুতরাং আউটপুট একটি পরিবর্তে রেফারেন্স দ্বারা সম্পন্ন হয়return


রেঞ্জের অ্যারে ধরে রাখতে ভেরিয়েবল $ z এর দরকার নেই, আপনি অ্যারে আক্ষরিককে সরাসরি ভিতরে রাখতে পারেন foreach
manatwork

ব্যবহার করার চেষ্টা করেছেন range()? পেস্টবিন.
com

@ মান্যাটওয়ার্ক, আমি ঘোষণা থেকে পরিবর্তন হয়েছি $zএবং আরও কিছু পরিবর্তন করেছি। range()সম্ভবত আরও ভাল হবে। আমি পরে পরিসীমা সহ কিছু চেষ্টা করতে পারি।
রিড 18

ব্যবহার করে range, আমি পেয়েছি function f($n,&$l){$o=['a'=>'z','A'=>'Z','0'=>'9'];foreach(str_split($n) as $c){$b=0;foreach($o as $m=>$x)!($c>$m&&$c<=$x)?:$b=$l.=implode(range($m,$c));$b?:$l.=$c;}}, যা ছিল 166.
রেড

1
হ্যাঁ, 146 টি অক্ষর ব্যবহার করে আপনার পুনর্লিখনের পরে range()কম উপকারী। কিন্তু যে 166 অত্যন্ত দীর্ঘ তাই হল: অ্যারের আক্ষরিক জন্য $ ণ ফিরে এসেছে প্রায় অতিরিক্ত স্পেস আছে asকীওয়ার্ড, join()জন্য ওরফে হয় implode()। (?। Pastebin কোড আমি আগেও লিঙ্ক শো পরিসীমা এন্ড পয়েন্ট সঞ্চয় করতে অন্য সম্ভাবনা পরিক্ষীত) আপনার 146 টি অক্ষর সমাধান প্রসঙ্গে, আপনি ভিতরে $ গ নিয়োগ স্থানান্তর করতে পারেন ord()কল: $d=ord($c=$n[$r])
manatwork

2

পাইথন, 143 বাইট

lambda s:''.join(map(chr,sum(map(lambda a,r=range:r(65,a+1)if 64<a<97else r(97,a+1)if 96<a<123else r(48,a+1)if 47<a<58else[a],map(ord,s)),[])))

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


2
আপনি 4 বাইট সংরক্ষণ করতে z = রেঞ্জ ব্যবহার করতে পারেন।
আর্কটরাস

1
খুব নিশ্চিত যে আপনি ডাবল স্পেস ইন্ডেন্টগুলি একটি একক ট্যাব দ্বারা প্রতিস্থাপন করতে পারবেন যা আপনাকে কয়েকটি বাইট সাশ্রয় করবে
ফান্ড মনিকার লসুইট

2

পার্ল 6, 101 বাইট

এটি এখানে প্রথম পাস:

sub MAIN($_ is copy){
  s:g/<[0..9]>/{(0..$/).join}/;
  s:g/<[a..z]>/{('a'..~$/).join}/;
  s:g/<[A..Z]>/{('A'..~$/).join}/;
  .say
}
sub MAIN($_ is copy){s:g/<[0..9]>/{(0..$/).join}/;s:g/<[a..z]>/{('a'..~$/).join}/;s:g/<[A..Z]>/{('A'..~$/).join}/;.say}

119


অপসারণ ব্যবহার .transকরে ।$_is copy

sub MAIN($_){
  .trans(
    /\d/       => {(0..$/).join},
    /<[a..z]>/ => {('a'..~$/).join},
    /<[A..Z]>/ => {('A'..~$/).join}
  ).say
}
sub MAIN($_){.trans(/\d/=>{(0..$/).join},/<[a..z]>/=>{('a'..~$/).join},/<[A..Z]>/=>{('A'..~$/).join}).say}

106


কাজ @*ARGSএকটি সংজ্ঞা সরাসরি পরিবর্তে MAINসাব।
(অন্যথায় পূর্ববর্তী উদাহরণের সাথে অভিন্ন)

@*ARGS[0].trans(/\d/=>{(0..$/).join},/<[a..z]>/=>{('a'..~$/).join},/<[A..Z]>/=>{('A'..~$/).join}).say

101


2

স্কালা, 111 91 বাইট

val f=(_:String).flatMap(x=>if(x.isDigit)('0'to x)else if(x.isUpper)('A'to x)else('a'to x))

এটি জন্য ব্যর্থ pi=3.14159। সমাধানটি কি পুরো val f=(_:String).flatMap(x:String=>if(x.isDigit)('0'to x)else if(x.isUpper)('A'to x)else if(x.isLower)('a'to x)else x.toString)128 টি অক্ষরের জন্য হতে পারে ?
লিওনার্দো

2

জুলিয়া, 102 98 90 84 বাইট

s->join([(i=Int(c);join(map(Char,(64<c<91?65:96<c<123?97:47<c<58?48:i):i)))for c=s])

এটি একটি নামহীন ফাংশন তৈরি করে যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে।

Ungolfed:

function f(s::AbstractString)
    # For each character in the input, get the codepoint and construct
    # a range of codepoints from the appropriate starting character to
    # the current character, convert these to characters, and join them
    # into a string
    x = [(i = Int(c);
          join(map(Char, (isupper(c) ? 65 :
                          islower(c) ? 97 :
                          isdigit(c) ? 48 : i):i))
         ) for c in s]

    # Join the array of strings into a single string
    return join(x)
end

2

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

($args-split''|%{$b=$_;switch([int][char]$_){{$_-in(65..90)}{[char[]](65..$_)}{$_-in(97..122)}{[char[]](97..$_)}{$_-in(48..57)}{0..$b}default{$b}}})-join''

প্রযুক্তিগতভাবে একটি ওয়ান-লাইনার, এবং পাওয়ারশেলগুলি সেগুলি সম্পর্কে সমস্ত কিছুই ;-)

ইনপুটটি বিভক্ত করে, পাইপগুলিকে একটি ForEach-Objectলুপে ফেলে দেয় castালাই অক্ষরের পূর্ণসংখ্যার মানটি স্যুইচ করে, তারপরে char[]উপযুক্ত ব্যাপ্তিগুলির নতুন তৈরি করে। নোট করুন যে একটি অস্থায়ী পরিবর্তনশীল সেট করতে আমাদের বাইটগুলি ব্যয় করতে হবে $bকারণ $_স্যুইচ বিবৃতিতে ইনপুট কাস্টিংয়ের কাজটির অর্থ হল যে আমরা কেবল ব্যবহার চালিয়ে রাখতে পারি না $_বা আমরা ফানকি আউটপুট পাব।

সম্পাদনা - আমার উল্লেখ করা উচিত যে এটির ফলে ত্রুটিগুলি টস হয়ে যাবে যেহেতু প্রথম বস্তুকে খাওয়ানো হচ্ছে %{...}নাল বস্তু। যেহেতু STDERR ডিফল্টরূপে উপেক্ষা করা হয়েছে , এটি কোনও সমস্যা হওয়া উচিত নয়। যদি এটি কোনও সমস্যা ($args-split''-ne''|...হয় তবে নাল বস্তুটি মুছে ফেলার জন্য প্রথম বিটটি পরিবর্তন করুন ।


2

জাভাস্ক্রিপ্ট (ES6), 340 258 273 271 বাইট

a=s=>{s=s.split``;Q=x=>x.toUpperCase();A="ABCDEFGHIJKLMNOPQRSTUVWXYZ";D="0123456789";f="";for(i=0;i<s.length;i++){j=s[i];c="to"+(Q(j)==j?"Upper":"Lower")+"Case";j=Q(j);if(q=A.search(j)+1)f+=g=A.slice(0,q)[c]();else if(q=D.search(j)+1)f+=g=D.slice(0,q);else f+=j}return f}

আপনি লুপের পরিবর্তে ("")এবং f=i=""লুপের জন্য টেম্পলেট স্ট্রিং `। ব্যবহার করতে পারেন । আপনি আরও কয়েকটি বাইট সংরক্ষণ করতে সক্ষম হতে পারেন।
ইন্ট্রিপিডকোডার

@intrepidcoder প্রথম কাজ করবে। আমি দ্বিতীয় পরীক্ষা করছি।
কনর ও'ব্রায়ান

2

সি (269 বাইট)

(স্পষ্টতার জন্য লাইন বিরতি যুক্ত করা হয়েছে)

#include<stdio.h>
#define F(x,y,z)if(c>=T[0][x]&&c<=T[1][y]){z}
#define L(x,y)for(i=0;i<x;++i){y}
main(){int c,i,n;char o,*T[]={"0Aa","9Zz"};while((c=getchar())!=EOF)
{F(0,2,L(3,F(i,i,o=T[0][i],n=++c-o;L(n,putchar(o++));break;))else putchar(c);)}}

Ungolfed

#include<stdio.h>
int main(void)
{
  int c, i, n;
  char output;
  char *char_table[] = {"0Aa", "9Zz"};

  while ((c = getchar()) != EOF) {
    if (c < '0' || c > 'z') {
      putchar(c);
    } else {
      for (i = 0; i < 3; ++i) {
        if (c >= char_table[0][i] && c <= char_table[1][i]) {
          output = char_table[0][1];
          n = c - output;
          break;
        }
      }
      for (i = 0; i <= n; ++i) {
        putchar(output);
        ++output;
      }
    }
  }
  return(0);
}

2

পার্ল 5 , 66 61 (51 বাইট + 1) 52

শর্তসাপেক্ষে অপারেটরগুলির সাথে রেজিক্সগুলির সংমিশ্রণ এক্ষেত্রে দুর্দান্ত কাজ করেছে। বিন্যাসে অ্যারেতে একত্রিত করতে মানচিত্র ব্যবহার করে
একটি যোগদানের সাথে With

say map{(/\d/?0:/[A-Z]/?A:/[a-z]/?a:$_)..$_}split//

পরীক্ষা

$ echo "A0C1.a3c_2!" |perl -M5.010 -n count_and_spell_up.pl
A0ABC01.a0123abc_012!

ব্যাখ্যা

say                # print output
  map{             # loop through the array that's at the end of the other mustache. 
                   # outputs an array. 
     (
        /\d/?0            # if $_ is a digit then 0
          :/[A-Z]/?A      # else, if it's an uppercase character then A
             :/[a-z]/?a   # else, if it's a lowercase character then a
               :$_        # else the current character
     )..$_         # generate a sequenced string of characters 
                   # that ends with the magic variable $_ 
                   # ($_ is currently a character from the array)
  }split//     # split the magic variable $_ (currently the input string)
               # to an array of characters

1

জাভাস্ক্রিপ্ট (ES7), 125 বাইট

ইতিমধ্যে দুটি জেএসের উত্তরগুলি স্ট্রিংগুলি এনকোডিংয়ে ফোকাস করছে, তাই আমি আরও বেশি অ্যালগরিদমিক পদ্ধতির দিকে যাবার সিদ্ধান্ত নিয়েছি String.fromCharCode():

x=>x.replace(/[^\W_]/g,z=>(c=z.charCodeAt(),f=c<65?48:c<97?65:97,String.fromCharCode(...[for(i of Array(c-f).keys())i+f])+z))

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


1

এমএমপিএস, 131 বাইট

u(l,h) i l'>a,a'>h f j=l:1:a s o=o_$C(j),f=0
    q
t(s) f i=1:1:$L(s) s a=$A(s,i),f=1 d u(48,57),u(65,90),u(97,122) s:f o=o_$C(a)
    q o

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

convert(str) ;
    new asciiCode,flag,i,output
    for i=1:1:$LENGTH(str) do
    . set asciiCode=$ASCII(str,i)
    . set flag=1
    . do helper(48,57)
    . do helper(65,90)
    . do helper(97,122)
    . if 'flag do
    . . set output=output_$CHAR(asciiCode)
    quit
helper(low,high) ;
    if low'>asciiCode,asciiCode'>high do
    . for code=low:1:asciiCode do
    . . set output=output_$CHAR(code)
    . . set flag=0
    quit

1

পার্ল 6, 78 77 বাইট

@*ARGS[0].trans(/\d/=>{[~] 0..$/},/<:L>/=>{[~] samecase("a",~$/)..~$/}).say

আমি জানতাম কেস 'a'..'z'এবং কেসগুলিকে একত্রিত করে এটি ছোট করা যেতে পারে 'A'..'Z', আমার আরও চেষ্টা করা উচিত ছিল।
ব্র্যাড গিলবার্ট বিবিগিল

আমি <!-- language-all: lang-perl6 -->ঠিক পরে যুক্ত করার পরামর্শ দিচ্ছি ## Perl 6যাতে এটি সঠিকভাবে হাইলাইট হয়। (পরিবর্তনটি ইতিমধ্যে এই উত্তরটির জন্য মুলতুবি রয়েছে)
ব্র্যাড গিলবার্ট বিবিগিল

আপনি সুইচ করতে পারেন {[~](0..$/)}থেকে {[~] 0..$/}যা এক বাইট সংরক্ষণ করতে হবে।
ব্র্যাড গিলবার্ট

0

গণিত, ১০২ বাইট

FromCharacterCode@Flatten[Which[64<#<91,65,96<#<123,97,47<#<58,48,1>0,#]~Range~#&/@ToCharacterCode@#]&

আচ্ছা ভালো...


0

সিজেম, 32 31 বাইট

q_'[,_el^A,s+26/ff{_@#)<}:s\.e|

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

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

q_    e# Push two copies of the user input.
'[,   e# Push the string of all ASCII characters up to Z.
_el   e# Push a copy and convert it to lowercase.
^     e# Perform symmetric difference this keeps only letters.
A,s+  e# Append the string "0123456789".
26/   e# Split the result into chunks of length 26.
ff{   e# For each character from input: For each chunk:
  _@  e#   Copy the chunk and rotate the character on top of it.
  #   e#   Push the index of the character in the string (-1 for not found).
  )<  e#   Increment and keep that many characters from the left of the chunk.
      e#   This pushes "" for index -1.
}
:s    e# Flatten the resulting arrays of strings.
      e# The results will be empty strings iff the character wan't alphanumeric.
\     e# Swap the result with the input string.
.e|   e# Perform vectorized logical OR.

0

পাইথন 2, 135 117 বাইট

s=''
for c in raw_input():
 b=ord(c);e=b+1
 if c.isalnum():
  b=max(b&96,47)+1
 for i in range(b,e):s+=chr(i)
print s

0

পিএইচপি - 291 বাইট

স্ট্রিং এ পাস করুন GET["s"]

<?php $s=$_GET["s"];$m="array_map";echo implode($m(function($v){$i="in_array";$l="implode";$r="range";global$m;$a=ord($v);if($i($a,$r(48,57)))$v=$l($m("chr",$r(48,$a)));if($i($a,$r(65,90)))$v=$l($m("chr",$r(65,$a)));if($i($a,$r(97,122)))$v=$l($m("chr",$r(97,$a)));return$v;},str_split($s)));

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