ตัวเลขในช่องทางของพวกเขา


32

การป้อนข้อมูล:

รายการจำนวนเต็ม

เอาท์พุท:

ใส่ตัวเลขแต่ละตัว (และเครื่องหมายลบ) ในช่องทางของตัวเองตามลำดับ-0123456789โดยไม่สนใจตัวเลขที่ซ้ำกัน

ตัวอย่าง:

การป้อนข้อมูล: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]

เอาท์พุท:

-0123456789  <- Added as clarification only, it's not part of the output

  1         
   2    7 9
 012 45 78 
-  23    8 
  1234  789
   2 4   89
-   34  789
 0         
  1        

กฏท้าทาย:

  • ตัวเลขที่ซ้ำกันในจำนวนนั้นจะถูกละเว้น
  • I / O สามารถอยู่ในรูปแบบที่เหมาะสม อินพุตสามารถเป็นรายการ / อาร์เรย์ของสตริงหรืออักขระอาร์เรย์ เอาต์พุตสามารถเป็นรายการของสตริงอักขระเมทริกซ์อักขระเป็นต้น
  • ช่องว่างต่อท้ายเป็นตัวเลือก
  • จำนวนบรรทัดใหม่ที่นำหน้าหรือต่อท้ายเป็นทางเลือก (แต่ไม่อยู่ระหว่างบรรทัด)
  • ข้อมูลที่ป้อนจะมีจำนวนเต็มอย่างน้อยหนึ่งตัวเสมอ
  • คุณจะได้ให้การสนับสนุนช่วงจำนวนเต็มอย่างน้อย-2,147,483,648แม้ว่า2,147,483,647(32 บิต)
  • การป้อนข้อมูลรายการไม่เคยจะมี-0, 00(หรือมากกว่าสองศูนย์) หรือจำนวนเต็มกับเลขศูนย์ชั้นนำ (เช่น012)
  • หากภาษาของคุณใช้สัญลักษณ์ที่แตกต่างกันสำหรับตัวเลขลบ (เช่นด้านบน¯) คุณจะได้รับอนุญาตให้ใช้สิ่งนั้นแทนตราบใดที่มันยังสอดคล้องกัน
  • คุณได้รับอนุญาตให้มีตัวคั่นช่องว่างระหว่างตัวเลข (ดังนั้นบรรทัดที่ไม่มี 5 หรือ 8 สามารถ- 0 1 2 3 4 6 7 9แทนได้-01234 67 9) ตราบใดที่มันสอดคล้องกัน (ดังนั้นจึงควรมีช่องว่างระหว่าง-และ0)

กฎทั่วไป:

  • นี่คือดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
    อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ '
  • กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
  • ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
  • หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
  • นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น

กรณีทดสอบ:

Input: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Output:
  1         
   2    7 9
 012 45 78 
-  23    8 
  1234  789
   2 4   89
-   34  789
 0         
  1        

Input: [4,534,4,4,53,26,71,835044,-3559534,-1027849356,-9,-99,-3459,-3459,-94593,-10234567859]
Output:
      4     
     345    
      4     
      4     
     3 5    
    2   6   
   1     7  
  0  345  8 
 -   345   9
 -0123456789
 -         9
 -         9
 -   345   9
 -   345   9
 -   345   9
 -0123456789

Input: [112,379,-3,409817,239087123,-96,0,895127308,-97140,923,-748]
Output:
  12       
   3    7 9
-  3       
 01 4   789
 0123   789
-      6  9
 0         
  123 5 789
-01  4  7 9
   23     9
-    4  78 

Input: [-15,-14,-13,-12,-11,10,-9,-8,-7,-5,-4,-3,-1,0,9,100,101,102,1103,104,105,106,116,-12345690]
Output:
- 1   5    
- 1  4     
- 1 3      
- 12       
- 1        
-01        
-         9
-        8 
-       7  
-     5    
-    4     
-   3      
- 1        
 0         
          9
 01        
 01        
 012       
 01 3      
 01  4     
 01   5    
 01    6   
  1    6   
-0123456  9

Input: [99,88,77,66,55,44,33,22,11,10,0,0,0,-941]
Output:
          9
         8 
        7  
       6   
      5    
     4     
    3      
   2       
  1        
 01        
 0         
 0         
 0         
- 1  4    9

ช่องว่างระหว่างตัวเลขจะได้รับอนุญาตในผลลัพธ์หรือไม่
Shaggy

เราสามารถใช้เครื่องหมายลบด้านบน¯แทนได้-หรือไม่
Uriel

ตัวเลขที่หายไปจะยังคงถูกแทนที่ด้วยช่องว่างดังนั้นในตัวอย่างของคุณจะมีช่องว่าง 3 ช่องระหว่าง 4 และ 6 และ 7 และ 9: "-0 1 2 3 4 <space> 6 7 <space> 9"(ช่องว่างหลายช่องได้รับการยุบในความคิดเห็นด้วยเหตุผลบางอย่าง)
Shaggy

1
ฉันหวังว่าจะแอบดูว่ามีใครผ่านคุณไปแล้ว! : D ด่างดี!
Shaggy

คำตอบ:


4

Stax , 8 ไบต์

║V≡u╝─é╢

เรียกใช้และแก้ไขข้อบกพร่อง

ใช้หนึ่งหมายเลขต่อบรรทัดในอินพุตมาตรฐาน มันทำงานได้โดยการค้นหาดัชนีเป้าหมายของตัวละครแต่ละตัวและกำหนดให้กับดัชนีนั้นของผลลัพธ์ ถ้าดัชนีอยู่นอกขอบเขตอาร์เรย์จะถูกขยายด้วยเลขศูนย์จนพอดี ในระหว่างการส่งออก0จะกลายเป็นช่องว่าง ส่วนที่เหลือเป็นรหัสตัวอักษร

คลายกล่อง ungolfed และแสดงความคิดเห็นนี่คือสิ่งที่ดูเหมือน

m       for each line of input, execute the rest of the program and print the result
 zs     put an empty array under the line of input
 F      for each character code in the line of input, run the rest of the program
  Vd    "0123456789"
  I^    get the index of the character in this string and increment
  _&    assign this character to that index in the original string

เรียกใช้อันนี้


มีความหมายอย่างไรในการป้อนรายการความยาว (ถ้าเป็นเพียงมูลค่าหรือมูลค่าและบรรทัดใหม่มันใช้งานไม่ได้)
Jonathan Allan

1
โอ้ใช่แล้วจุดดี ["7"]รูปแบบอื่นของการป้อนข้อมูลที่ยังสามารถใช้ได้กับค่าเดียว ["34", "43"]รูปแบบนี้ยังสามารถจัดการกับค่าหลายอย่างเช่น
เรียกซ้ำ

6

05AB1E , 13 ไบต์

รหัส:

v'-žh«DyмSð:,

ใช้การเข้ารหัส05AB1E ลองออนไลน์!

คำอธิบาย:

v               # For each element in the input..
 '-žh«          #   Push -0123456789
      D         #   Duplicate this string
       yм       #   String subtraction with the current element
                    e.g. "-0123456789" "456" м  →  "-0123789"
         Sð:    #   Replace all remaining elements with spaces
                    e.g. "-0123456789" "-0123789" Sð:  →  "     456   "
            ,   #   Pop and print with a newline

1
ดี! จะแทนที่เส้นทางสั้นกว่าแทรกเส้นทางที่ฉันเห็น :)
Emigna

2
@Emigna แทรกเส้นทางเป็นวิธีที่น่าสนใจมาก ที่จริงแล้วฉันคิดว่าคุณสามารถบันทึกได้ 4 ไบต์ด้วยvðTúyvyÐd+ǝ},;)
Adnan

1
ยอดเยี่ยม! ฉันไม่รู้ว่าǝจะทำงานแบบนั้น-0หรือไม่ แต่ตอนนี้เมื่อฉันอ่านมันมันเป็นตัวเลขและไม่ใช่สตริงอย่างที่ฉันอ่านเป็นครั้งแรกในฐานะ: P
Emigna

Ooooof ... ฉันอายุ 23bytes 05AB1E (ปุนต่อมนุษยชาติ)
Magic Octopus Urn


4

JavaScript, 59 58 ไบต์

อินพุตและเอาต์พุตเป็นอาร์เรย์ของสตริง

a=>a.map(x=>`-0123456789`.replace(eval(`/[^${x}]/g`),` `))

ลองมัน

o.innerText=(g=s=>(f=
a=>a.map(x=>`-0123456789`.replace(eval(`/[^${x}]/g`),` `))
)(s.split`,`).join`\n`)(i.value="1,729,4728510,-3832,748129321,89842,-938744,0,11111");oninput=_=>o.innerText=g(i.value)
input{width:100%;}
<input id=i><pre id=o></pre>


เป็นต้นฉบับ

รับอินพุตเป็นอาร์เรย์ของสตริงและเอาต์พุตอาร์เรย์ของอักขระอาร์เรย์

a=>a.map(x=>[...`-0123456789`].map(y=>-~x.search(y)?y:` `))


1
ฉันชอบมันมาก
Brian H.

4

APL (Dyalog) , 32 12 ไบต์

บันทึกแล้ว 28 ไบต์ด้วย @ Adámและ @ngn

⊃¨⎕∘.∩'¯',⎕d

ลองออนไลน์!


1
ความคิดเดียวกัน, {' '@(~∊∘⍵)'¯',⎕D}¨15: เห็นได้ชัดว่าสามารถใช้-กับการเปลี่ยนแปลงเล็กน้อย
อดัม

{⊃¨⍵∘.∩'¯',⎕d}
ngn

หรือแม้กระทั่ง⊃¨⎕∘.∩'¯',⎕d
ngn

3

05AB1E , 17 13 ไบต์

บันทึกแล้ว 4 ไบต์ขอบคุณAdnan

vðTúyvyÐd+ǝ},

ลองออนไลน์!

คำอธิบาย

v               # loop over elements y in input
 ðTú            # push a space prepended by 10 spaces
    yv          # for each element y in the outer y
      y         # push y
       Ðd+      # push y+isdigit(y)
          ǝ     # insert y at this position in the space-string
           }    # end inner loop
            ,   # print

3

ทับทิมขนาด 42 ไบต์

แลมบ์ดานิรนามกำลังประมวลผลอาร์เรย์ของตัวเลข:

->a{a.map{|n|"-0123456789".tr"^#{n}",?\s}}

ลองออนไลน์!

อีกทางหนึ่งโปรแกรมเต็มรูปแบบเหมือน Perl ทั้งหมดจะสั้นกว่ามาก ฉันว่า-plสวิทช์ดูค่อนข้างตลกในบริบทนี้:

Ruby -pl , 29 ไบต์

$_="-0123456789".tr"^#$_"," "

ลองออนไลน์!

ในที่สุดต่อไปนี้เป็นไปได้ถ้าเป็นที่ยอมรับสำหรับสตริงการส่งออกที่จะยกมา:

Ruby -n , 27 ไบต์

p"-0123456789".tr ?^+$_,?\s

ลองออนไลน์!


3

JavaScript (Node.js) , 60 ไบต์

  • ขอบคุณ @Andrew Taylor สำหรับการลดการเข้าร่วม (8 ตัวอักษร)
  • ขอบคุณ @Yair Rand สำหรับ X.match (8 ตัวอักษร)
a=>a.map(X=>"-0123456789".replace(/./g,x=>X.match(x)?x:" "))

ลองออนไลน์!


โอ้joinเคล็ดลับนั้นช่างน่ารัก - แต่คำถามที่อ่านเช่นอาเรย์ของสตริงคือเอาท์พุทตกลงดังนั้นบางทีคุณสามารถโกน 8 ไบต์ด้วยการลบมันได้?
แอนดรูเทย์เลอ

ค่อนข้างแน่ใจว่าคุณสามารถบันทึกอื่นโดยแทนที่(X+"").includes(x)ด้วยRegExp(x).test(X)
Andrew Taylor

(X+"").match(x)จะสั้นกว่านี้ คำถามยังอนุญาตให้อินพุตเป็นอาร์เรย์ของสตริงดังนั้นจึงอาจเป็นX.match(x)ไปได้
Yair Rand

2

Japt , 16 ไบต์

อินพุตและเอาต์พุตเป็นอาร์เรย์ของสตริง

£Ao ¬i- ®iS gXøZ

ลองมัน


คำอธิบาย

£                    :Map over each element X
 Ao                  :  Range [0,10)
    ¬                :  Join to a string
     i-              :  Prepend "-"
        ®            :  Map over each character Z
         iS          :    Prepend a space
            g        :    Get the character at index
             XøZ     :      X contains Z? (true=1, false=0)

2

Python 3 , 77 64 ไบต์

-12 ไบต์ขอบคุณ @Rod

lambda x:[[[" ",z][z in str(y)]for z in"-0123456789"]for y in x]

ลองออนไลน์!

ความพยายามครั้งแรกของฉันในการเล่นกอล์ฟใน Python ยินดีต้อนรับคำแนะนำ!

ส่งคืนอาร์เรย์ของอักขระ 2 มิติ


1
คุณสามารถใช้'-0123456789'แทนrange(10)และปล่อยบล็อกแรกและสลับstr(z)กับzคุณยังสามารถสลับไปยัง python2 และใช้`y`แทนstr(y)( ``คือ + - เทียบเท่ากับrepr)
Rod

in "-พื้นที่ฟุ่มเฟือยใน
Jonathan Frech


2

Haskell , 47 ไบต์

map(\s->do d<-"-0123456789";max" "[d|elem d s])

ลองออนไลน์!

ใช้maxเพื่อแทรกช่องว่างที่ไม่มีองค์ประกอบอยู่เนื่องจากช่องว่างนั้นเล็กกว่าเครื่องหมายหลักหรือเครื่องหมายลบ

หากจำนวนช่องว่างต่อท้ายแบบไม่เป็นธรรมนั้นตกลงสองไบต์สามารถบันทึกได้:

45 ไบต์

map(\s->do d<-'-':['0'..];max" "[d|elem d s])

ลองออนไลน์!


2

MATL , 13 ไบต์

"45KY2ht@gm*c

อินพุตเป็นอาร์เรย์ของสตริงของเซลล์ ลองออนไลน์! หรือตรวจสอบกรณีทดสอบทั้งหมด

คำอธิบาย

         % Implicit input: cell array of strings, for example {'1','729',...,'11111'}
"        % For each cell
  45     %   Push 45 (ASCII code of '-')
  KY2    %   Push predefined literal '0123456789'
  h      %   Concatenate horizontally: gives '-0123456789'
  t      %   Duplicate
  @      %   Push current cell, for example {'729'}
  g      %   Convert cell to matrix. This effectively gives the cell's contents, '729'
  m      %   Ismember: gives an array of zeros and ones indicating membership of each
         %   char from '-0123456789' in '729'. The result in the example is
         %   [0 0 0 1 0 0 0 0 1 0 1]
  *      %   Multiply, element-wise. Chars are implicity converted to ASCII 
         %   Gives the array [0 0 0 50 0 0 0 0 55 0 57] 
  c      %   Convert ASCII codes to chars. 0 is displayed as space. Gives the string
         %   '   2    7 9'
         % Implicit end
         % Implicilly display each string on a different line

2

J , 32 27 ไบต์

-5 ไบต์ขอบคุณ FrownyFrog!

10|.":(10<."."0@[)}11$' '"0

ลองออนไลน์!

ทางออกเดิม:

J , 32 ไบต์

(('_0123456789'i.[)}11$' '"0)@":

คำอธิบาย:

@": แปลงเป็นตัวอักษรและ

}11$' '"0 เปลี่ยนเนื้อหาของอาร์เรย์ 11 ช่องว่างเป็นอักขระเหล่านี้

'_0123456789'i.[ ที่สถานที่ที่ระบุโดยดัชนีของตัวละครในรายการนี้

ลองออนไลน์!


1
10|.":(10<."."0@[)}11$' '"0
FrownyFrog

@ PhoenixnyFrog ทางออกที่ดีขอบคุณ!
Galen Ivanov

2

Google ชีต 124 ไบต์

=Transpose(ArrayFormula(If(IsError(Find(Mid("-0123456789",Row($1:$11),1),Split(A1,",")))," ",Mid("-0123456789",Row($1:$11),1

A1การป้อนข้อมูลเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคในเซลล์ เอาต์พุตอยู่ในช่วงB1:L?ที่?มีรายการจำนวนมากถูกป้อนเข้า (คุณสามารถใส่สูตรได้ทุกที่ที่คุณต้องการฉันเพิ่งเลือกB1เพื่อความสะดวก) โปรดทราบว่าแผ่นงานจะเพิ่มวงเล็บปิดสี่รายการลงในส่วนท้ายของสูตรโดยอัตโนมัติ

ภาพหน้าจอ

อีกกรณีทดสอบและอีกกรณีทดสอบ

คำอธิบาย:

  • Mid("-0123456789",Row($1:$11),1) เลือกอักขระ 11 ตัวตามลำดับ
  • Find(Mid(~),Split(A1,","))ค้นหาอักขระเหล่านั้นในองค์ประกอบอินพุตแต่ละรายการ นี่อาจส่งคืนค่าตัวเลขหรือหากไม่พบข้อผิดพลาด
  • If(IsError(Find(~)," ",Mid(~))จะคืนช่องว่างหากไม่พบอักขระหรืออักขระถ้าเป็น (ฉันหวังว่าจะมีวิธีหนึ่งในการหลีกเลี่ยงการทำซ้ำMid(~)ส่วน แต่ฉันไม่รู้จัก)
  • ArrayFormula(If(~))เป็นสิ่งที่ทำให้การอ้างอิงหลายเซลล์ในMid(~)และFind(~)ทำงาน มันคือสิ่งที่ทำให้สูตรในหนึ่งเซลล์ส่งคืนค่าในหลาย ๆ เซลล์
  • Transpose(ArrayFormula(~)) ย้ายอาเรย์กลับเพราะมันเริ่มออกด้านข้าง

2

เยลลี่ 12 ไบต์

ØD”-;¹⁶e?€Ʋ€

ลองออนไลน์!

-2 ขอบคุณโจนาธานอัลลันที่อ่านกฎฉันไม่ได้ทำ

โปรดทราบว่ารูปแบบ I / O ที่ใช้ในลิงก์ TIO ไม่ใช่รูปแบบที่เกิดขึ้นจริงซึ่งเป็นอินพุตเป็นรายการของการแทนค่าสตริงและเอาต์พุตเป็นรายการของบรรทัด


1

Perl 6 , 35 ไบต์

{.map:{map {m/$^a/||' '},'-',|^10}}

ลองออนไลน์!

เอาต์พุตเป็นเมทริกซ์อักขระที่มีการจับคู่ regex หรืออักขระเว้นวรรค


หาก 'ป้อนข้อมูลสามารถอยู่ในรูปแบบที่เหมาะสมใด ๆ' อาจจะ stdin แล้วสันนิษฐานว่า-peจะช่วยให้คุณจ่ายกับ .map เริ่มต้นการจัดฟันและแลกเปลี่ยน$^aสำหรับ$_
ฟิล H

@PhilH -pและ-nดูเหมือนจะเป็นรถอย่างน้อยใน TIO ด้วยเหตุผลบางอย่าง$_จะไม่ถูกส่งไปยังบล็อก ดูตัวอย่าง 1 , 2 ตัวอย่าง
nwellnhof

1

Java 8, 53 ไบต์

a->a.map(i->"-0123456789".replaceAll("[^"+i+"]"," "))

ความท้าทายของฉันนั้นง่ายกว่าที่ฉันคิดไว้เมื่อฉันทำ ..

input และ output java.util.stream.Stream<String>เป็นทั้ง

คำอธิบาย:

ลองออนไลน์

a->                              // Method with String-Stream as both input and return-type
  a.map(i->                      //  For every String in the input:
    "-0123456789"                //   Replace it with "-0123456789",
    .replaceAll("[^"+i+"]"," ")) //   with every character not in `i` replaced with a space


1

R , 96 75 ไบต์

for(i in scan())cat(paste(gsub(paste0("[^",i,"]")," ","-0123456789"),"\n"))

ลองออนไลน์!

ขอบคุณ Kevin Cruijssen ที่แนะนำวิธีการ regex นี้!

รับอินพุตจาก stdin เป็นจำนวนเต็มคั่นด้วย whitespace และพิมพ์ ascii-art เป็น stdout


ผมไม่ทราบว่า R ดีเกินไปดังนั้นฉันแน่ใจว่ามันสามารถแข็งแรงเล่นกอล์ฟต่อไป แต่วิธีการที่แตกต่างกันนี้คือ 12 function(N)for(i in N)cat(paste(gsub(paste("[^","]",sep=i)," ","-0123456789"),"\n"))ไบต์สั้น: (ป้อนเป็นสตริงสตริงแทนอาร์เรย์จำนวนเต็ม) ลองออนไลน์
Kevin Cruijssen

@KevinCruijssen อ่าใช่ฉันสามารถเล่นกอล์ฟลงได้เช่นกัน
Giuseppe

1

SOGL V0.12 , 14 13 ไบต์

{ø,{²²⁴WI1ž}P

ลองที่นี่!

คำอธิบาย:

{ø,{²²⁴WI1ž}P

{            repeat input times
 ø,            push an empty string and the next input above that
   {       }   for each character in the input
    ²²           push "0123456789"
      ⁴          copy the character on top
       W         and get it's index in that string (1-indexed, 0 for the non-existent "-")
        I        increment that (SOGL is 1-indexed, so this is required)
         1ž      at coordinates (index; 1) in the string pushed earlier, insert that original copy of the character
            P  print the current line


1

Pyth, 14 ไบต์

VQm*d}dNs+\-UT

รับอินพุตเป็นรายการของสตริงและเอาต์พุตรายการของสตริงสำหรับแต่ละบรรทัด
ลองที่นี่

คำอธิบาย

VQm*d}dNs+\-UT
VQ                For each string in the input...
  m     s+\-UT    ... and each character in "-0123456789"...
     }dN          ... check if the character is in the string...
   *d             ... and get that character or an empty string.

1

เรติน่า 26 ไบต์

%"-0123456789"~`.+
[^$&]¶ 

ลองออนไลน์! หมายเหตุ: พื้นที่ต่อท้าย คำอธิบาย: %เรียกใช้งานสเตจลูกของมัน~หนึ่งครั้งสำหรับแต่ละอินพุต ~ขั้นแรกเรียกใช้งานสเตจลูกของมันซึ่งล้อมรอบบรรทัด[^และ]<CR><SP>สร้างโปรแกรมที่แทนที่อักขระที่ไม่อยู่ในบรรทัดด้วยช่องว่าง การ"-0123456789"ระบุว่าอินพุตไปยังโปรแกรมนั้นเป็นสตริงที่กำหนด ( $อนุญาตให้แทนที่ได้ แต่ฉันไม่ต้องการ)


1

Perl 5 -n , 30 ไบต์

จะไม่ทำงานหาก-สามารถปรากฏที่ใดก็ได้มากกว่าตำแหน่งแรก

#!/usr/bin/perl -n
say"-0123456789"=~s/[^$_]/ /gr

ลองออนไลน์!


จะไม่ทำงานหาก-สามารถปรากฏที่ใดก็ได้นอกเหนือจากตำแหน่งแรกหากเป็นเช่นนั้นคุณจะไม่ตอบคำถามนี้เนื่องจากพวกเขาจะไม่เป็นจำนวนเต็มอีกต่อไป : P
Erik the Outgolfer



1

C (gcc) , 95 94 ไบต์

c,d;f(l,n)char**l;{for(;n--;l++)for(c=0;c<12;)putchar(strchr(*l,d=c++?c+46:45)?d:d^58?32:10);}

ลองออนไลน์!

ป้อนในรูปแบบของรายการสตริง ส่งออกไปยัง STDOUT


คุณสามารถไบต์กอล์ฟโดยการลบc++และการเปลี่ยนแปลงไปd=c?c+47: d=c++?c+46:
Kevin Cruijssen

1

K4 , 30 27 ไบต์

วิธีการแก้:

{?[a in$x;a:"-",.Q.n;" "]}'

ตัวอย่าง:

q)k){?[a in$x;a:"-",.Q.n;" "]}'1 729 4728510 -3832 748129321 89842 -938744 0 11111
"  1        "
"   2    7 9"
" 012 45 78 "
"-  23    8 "
"  1234  789"
"   2 4   89"
"-   34  789"
" 0         "
"  1        "

คำอธิบาย:

ส่งคืน "-0123 ... " หรือ "" ตามอินพุต ตีความจากขวาไปซ้าย ไม่มีการแข่งขันสำหรับคำตอบ APL :(

{?[a in$x;a:"-",.Q.n;" "]}' / the solution
{                        }' / lambda for each
 ?[      ;          ;   ]   / if[cond;true;false]
                .Q.n        / string "0123456789"
            "-",            / join with "-"
          a:                / save as a
       $x                   / convert input to string
   a in                     / return boolean list where each a in x
                     " "    / whitespace (return when false)

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