การนับและการสะกดคำ


26

เขียนโปรแกรมที่ใช้เป็นสายอักขระที่ป้อนสตริงที่มีคุณสมบัติดังต่อไปนี้

  • หากตัวอักษรในสตริงเป็นตัวอักษรตัวพิมพ์ใหญ่ (ASCII 41-5A) อักขระนั้นจะถูกแทนที่ด้วยสตริงที่มีตัวอักษรทุกตัวจนถึงและรวมถึงตัวอักษรต้นฉบับในตัวพิมพ์ใหญ่ ตัวอย่างเช่นถ้าสายป้อนเป็นแล้วออกจะเป็นIABCDEFGHI
  • ในทำนองเดียวกันถ้าตัวละครเป็นตัวอักษรตัวเล็ก (ASCII 61-7A) ตัวละครจะถูกแทนที่ด้วยวิธีเดียวกัน จะถูกแทนที่ด้วยiabcdefghi
  • หากตัวละครเป็นตัวเลข (ASCII 30-39) ตัวละครนั้นจะถูกแทนที่ด้วยตัวเลขทุกตัวที่เริ่มต้นจาก0และนับจนถึงจำนวน
  • หากอินพุตมีการตัดแบ่งอักขระแต่ละตัวดังนั้นลำดับการแทนที่จะถูกรวมเข้าด้วยกัน
  • อักขระอื่นทั้งหมดจะถูกพิมพ์โดยไม่มีการดัดแปลง

อินพุตตัวอย่าง (คั่นด้วยบรรทัดว่าง)

AbC123

pi=3.14159

Hello, World!

ตัวอย่างผลลัพธ์

AabABC010120123

abcdefghijklmnopabcdefghi=0123.0101234010123450123456789

ABCDEFGHabcdeabcdefghijklabcdefghijklabcdefghijklmno, ABCDEFGHIJKLMNOPQRSTUVWabcdefghijklmnoabcdefghijklmnopqrabcdefghijklabcd!

นี่คือรหัสกอล์ฟ, fellas ใช้กฎมาตรฐาน รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ


หากต้องการดูลีดเดอร์บอร์ดให้คลิก "แสดงข้อมูลโค้ด" เลื่อนไปที่ด้านล่างและคลิก "►เรียกใช้ข้อมูลโค้ด" ส่วนย่อยทำโดยเครื่องมือเพิ่มประสิทธิภาพ


10
แนวคิดสำหรับภาคต่อ: ยกเลิกการเปลี่ยนแปลงนี้
ETHproductions

2
@ ETHproductions บางทีแม้ว่าวิธีที่นี่จะดูดีกว่าสำหรับฉันเพราะมันสามารถรับอินพุตใด ๆ เกิดอะไรขึ้นถ้าในสิ่งที่ตรงกันข้ามอินพุตคือHello, World!อะไร?
Arcturus

เราจำเป็นต้องสนับสนุนอักขระ NUL (ascii 0x00) ในสตริงอินพุตหรือไม่?
nimi

@Eridan ในกรณีเช่นนี้รหัสควรพิมพ์ข้อผิดพลาดหรือเพื่อความสนุกให้ทำการแปลงข้างต้น นั่นคือ f (f (อินพุต)) == อินพุต ฉันไม่เชื่อว่ามันเป็นไปได้สำหรับการป้อนตัวเลขและตัวอักษรใด ๆ ที่จะไม่เชื่อฟังความสัมพันธ์นี้
Jake

1
นั่นเป็นความจริงทั้งหมด - ฉันสร้างสมมุติฐานว่า "ถ้าสตริงสามารถเป็นผลลัพธ์ของการแปลงให้แปลงกลับตรงกันข้ามมิฉะนั้นให้ใช้การแปลง" - เป็นความท้าทายของคุณคุณสามารถระบุกฎใด ๆ ที่คุณเลือกตราบใดที่ (ก) กฎเหล่านั้นสอดคล้องกันและ (ข) กฎเหล่านั้นสามารถตรวจสอบได้และไม่จำเป็นต้องมีสาขาคณิตศาสตร์ใหม่ทั้งหมดเพื่อแก้ปัญหา หมายเหตุด้าน: การฉายรังสี (b) น่าสนใจ คุณไม่มีทางรู้ว่าเมื่อใครบางคนจะปฏิวัติวิทยาศาสตร์คอมพิวเตอร์โดยบังเอิญด้วยอัลกอริธึมเวลาแบบพหุนามสำหรับปัญหา NP - ซึ่งเป็นจริงที่เหมาะสมที่นี่ตราบใดที่มันประหยัด 4 ไบต์
Jake

คำตอบ:


11

Pyth, 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


7

TeaScript , 24 ไบต์26 28

TeaScript เป็น JavaScript สำหรับเล่นกอล์ฟ

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

Ruby, 137 87 82 76 67 55 ไบต์

Ungolfed แต่คุณสามารถเห็นรูปแบบ

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

แก้ไข: golfed ลงไปที่ regex เดียวเท่านั้น

แก้ไข 2: มีช่องว่างเพิ่มจำนวนมาก

แก้ไข 3: ขอบคุณ manatwork สำหรับการเล่นกอล์ฟ 12 ไบท์!


1
$><<gets.gsub(/[a-z0-9]/i){[*" 0Aa"[$&.ord/32]..$&]*""}
จัดการ

@ จัดการงานประณามที่ฉลาด!
Peter Lenkefi

4

Python 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=...


@Mego โอ้ฮ่าฮ่า! ไม่ต้องกังวล :)
Kade

4

Haskell, 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>]

แก้ไข: @Zgarb บันทึกจำนวนมากหลายไบต์ ขอบคุณ!


ฉันคิดว่าคุณสามารถกำหนดc#_=[c]และข้ามได้tทั้งหมด
Zgarb

@Zgarb: ใช่แน่นอนและจากนั้นsก็ไม่จำเป็น ขอบคุณมาก!
nimi

4

JavaScript (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``))

การสาธิตออนไลน์ ทดสอบใน Firefox และ Chrome

แก้ไข: บันทึก 5 ไบต์โดยแทนที่a='0123456789abcdefghijklmnopqrstuvwxyz'ด้วย

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

3

PHP, 146 ไบต์

แข็งแรงเล่นกอล์ฟ

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:ใส่ช่วง ord ลงในหน้า foreach โดยตรง เพิ่มขึ้นอ๊อด maxes ช่วงและมีการเปลี่ยนแปลงไป$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;

คำอธิบาย: แยกสตริงออกเป็นอาร์เรย์ หากค่า ascii อยู่ในช่วง (สำหรับ az, AZ, 0-9) ให้เพิ่มตัวนับจากนาทีของช่วงเป็นค่า ascii ของถ่านต่อท้ายแต่ละค่าจนกว่าคุณจะถึงค่า ascii ของถ่าน

ฉันส่งผ่าน&$varดังนั้นการส่งออกจะทำโดยอ้างอิงมากกว่าreturn


ไม่จำเป็นต้องมีตัวแปร $ z foreachเพื่อถืออาร์เรย์ของช่วงไม่เป็นคุณสามารถใส่ตัวอักษรอาร์เรย์โดยตรงใน
จัดการ

พยายามที่จะใช้range()? pastebin.com/k2tqFEgD
จัดการ

@ การทำงานฉันเปลี่ยนจากการประกาศ$zและทำการเปลี่ยนแปลงอื่น ๆ range()น่าจะดีกว่า ฉันอาจลองทำบางสิ่งบางอย่างในภายหลัง
รีด

ใช้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
Reed

1
ใช่หลังจากที่คุณเขียนใหม่ถึง 146 ตัวอักษรโดยใช้range()จะมีประโยชน์น้อยกว่า แต่ที่ 166 ยาวเกินไปแม้ดังนั้นที่: $ o สำหรับตัวอักษรอาร์เรย์จะกลับมามีช่องว่างเพิ่มรอบasคำหลักคือนามแฝงสำหรับjoin() implode()(?. ตรวจสอบรหัส Pastebin ที่ผมเชื่อมโยงก่อนหน้านี้แสดงให้เห็นความเป็นไปได้ในการจัดเก็บปลายทางช่วงอื่น) เกี่ยวกับการแก้ปัญหา 146 ตัวอักษรของคุณคุณสามารถย้ายที่ได้รับมอบหมายถึง $ คภายในโทร:ord() $d=ord($c=$n[$r])
จัดการ

2

Python ขนาด 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
คุณสามารถใช้ช่วง z = เพื่อบันทึก 4 ไบต์
Arcturus

1
ค่อนข้างแน่ใจว่าคุณสามารถแทนที่การเว้นวรรคสองครั้งด้วยแท็บเดียวซึ่งจะช่วยให้คุณประหยัดได้ไม่กี่ไบต์
คดีของ Fund Monica

2

Perl 6, 101 bytes

นี่เป็นครั้งแรกที่ผ่านมัน:

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 ตัวหรือไม่
Leonardo

2

Julia, 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

PowerShell, 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''

เทคนิคหนึ่งซับและ PowerShell คือทั้งหมดที่เกี่ยวกับ ;-)

แบ่งอินพุต, ไพพ์ที่เป็นForEach-Objectลูป, เปิดสวิตช์ค่าจำนวนเต็มของอักขระคาสต์จากนั้นสร้างช่วงใหม่char[]ที่เหมาะสม โปรดทราบว่าเราต้องใช้ไบต์เพื่อตั้งค่าตัวแปร temp $bเนื่องจากการส่งสัญญาณ$_ในคำสั่ง switch หมายความว่าเราไม่สามารถใช้ต่อไปได้$_หรือเราจะได้ผลลัพธ์ที่ขี้ขลาด

แก้ไข - ฉันควรชี้ให้เห็นว่าสิ่งนี้จะทำให้เกิดข้อผิดพลาดเนื่องจากวัตถุแรกที่ป้อนเข้า%{...}เป็นวัตถุว่าง เนื่องจาก STDERR ถูกละเว้นโดยค่าเริ่มต้นนี่จึงไม่น่าเป็นปัญหา หากเป็นปัญหาให้เปลี่ยนบิตแรกเป็น($args-split''-ne''|...กำจัดวัตถุว่าง


2

JavaScript (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

@intrepidcoder คนแรกที่ใช้งานได้ ฉันกำลังตรวจสอบในวันที่สอง
Conor O'Brien

2

C (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

Perl 5 , 66 61 (51 Bytes + 1) 52

การรวม regexes กับตัวดำเนินการตามเงื่อนไขทำงานได้ดีในกรณีนี้
ด้วยการเข้าร่วมใช้แผนที่เพื่อรวมช่วงเป็นอาร์เรย์

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

JavaScript (ES7), 125 ไบต์

มีคำตอบ JS สองข้อที่ให้ความสำคัญกับการเข้ารหัสสตริงดังนั้นฉันจึงตัดสินใจใช้วิธีอัลกอริธึมเพิ่มเติมโดยใช้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

MUMPS, 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

ฉันไม่จัดการเพื่อประหยัดไม่กี่ไบต์ที่ดีที่นี่ต้องขอบคุณคางทูมของการกำหนดขอบเขตแบบไดนามิก นี่เป็นรุ่น ungolfed ประมาณเทียบเท่าซึ่งผมแน่ใจว่าจะรักจะไฮไลท์ไวยากรณ์ถ้าเพียง แต่การสนับสนุนสำหรับโมดูลคางทูมเสริมสวยที่มีอยู่

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

Perl 6, 78 77 ไบต์

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

ฉันรู้ว่ามันอาจจะสั้นลงโดยการรวม'a'..'z'และ'A'..'Z'กรณีฉันควรพยายามให้หนักขึ้น
Brad Gilbert b2gills

ฉันขอแนะนำให้เพิ่ม<!-- language-all: lang-perl6 -->หลังจาก## Perl 6นั้นเพื่อจะเน้นอย่างถูกต้อง (การเปลี่ยนแปลงกำลังรอคำตอบนี้อยู่แล้ว)
Brad Gilbert b2gills

คุณสามารถสลับ{[~](0..$/)}ไป{[~] 0..$/}ที่จะบันทึกหนึ่งไบต์
Brad Gilbert b2gills


0

CJam, 32 31 ไบต์

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

ลองใช้ออนไลน์ในล่าม CJam

มันทำงานอย่างไร

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

Python 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

PHP - 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)));

0

C #, 251 201 184 157 154 ไบต์

using System;class c{static void Main(string[] i){foreach(var c in i[0])for(var x=c>64&c<91?'A':c>96&c<123?'a':c>47&c<58?'0':c;x<=c;)Console.Write(x++);}}

แก้ไข: Strike! สั้นกว่า PowerShell;)


1
คุณสามารถทำstring[]iอะไร
Erik the Outgolfer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.