รวมอาเรย์


33

งานง่าย: รวมอาเรย์ของ ints การรวมอาเรย์นี้ประกอบด้วยสิ่งต่อไปนี้:

  • อินสแตนซ์ทั้งหมดของ 0 ต้องถูกย้ายไปยังจุดสิ้นสุดของอาร์เรย์
  • ไม่ควรมี 0s ระหว่างจำนวนเต็มที่ไม่ใช่ศูนย์
  • ดัชนีที่ไม่เป็นศูนย์ทั้งหมดควรรักษาคำสั่งซื้อของตน

ท้าทาย

รวมอาเรย์ด้วยจำนวนไบต์น้อยที่สุด

คุณกำลังรวมอาเรย์ของความยาวแบบสุ่มด้วยขนาดสูงสุดถึงภาษาของคุณด้วยจำนวนเต็มแบบสุ่ม การป้อนข้อมูลอาจเป็นวิธีที่เป็นธรรมชาติสำหรับภาษาของคุณ

ตัวอย่าง

อินพุต

0 5 8 8 3 5 1 6 8 4 0 3 7 5 6 4 4 7 5 6 7 4 4 9 1 0 5 7 9 3 0 2 2 4 3 0 4 8 7 3 1 4 7 5 1 2 1 8 7 8 7 7 2 6 3 1 2 8 5 1 4 2 0 5 0 6 0 3

เอาท์พุต

5 8 8 3 5 1 6 8 4 3 7 5 6 4 4 7 5 6 7 4 4 9 1 5 7 9 3 2 2 4 3 4 8 7 3 1 4 7 5 1 2 1 8 7 8 7 7 2 6 3 1 2 8 5 1 4 2 5 6 3 0 0 0 0 0 0 0 0

อินพุต

-1 -7 -6 5 1 -5 -2 7 -3 -8 0 8 9 1 -8 -1 6 -4 1 -2 1 -7 5 4 -6 7 -3 9 8 3 -1 0 -5 -7 3 8 1 1 3 -3 -2 -2 0 -7 0 -4 8 6 -3 6 0 5 3 2 2 2 -2 -7 -3 9 -1 6 0 6 -7 9 4 -2 8 -8 -4 1 -8 4 3 7 3 5 1 0 3 3 7 -1 -5 1 -3 4 -7 0 3 2 -2 7 -3 0 0 2 -5 8 -3 -2 -7 -5 7 -3 -9 -7 5 8 -3 9 6 7 -2 4 7

เอาท์พุต

-1 -7 -6 5 1 -5 -2 7 -3 -8 8 9 1 -8 -1 6 -4 1 -2 1 -7 5 4 -6 7 -3 9 8 3 -1 -5 -7 3 8 1 1 3 -3 -2 -2 -7 -4 8 6 -3 6 5 3 2 2 2 -2 -7 -3 9 -1 6 6 -7 9 4 -2 8 -8 -4 1 -8 4 3 7 3 5 1 3 3 7 -1 -5 1 -3 4 -7 3 2 -2 7 -3 2 -5 8 -3 -2 -7 -5 7 -3 -9 -7 5 8 -3 9 6 7 -2 4 7 0 0 0 0 0 0 0 0 0 0

รหัสตัวอย่าง (Java)

public class Consolidate {
    public static void main(String[] args) throws Exception {
        int[] toConsolidate = new int[args.length];
        for (int i=0; i<args.length; i++){
            toConsolidate[i]=Integer.parseInt(args[i]);
        }
        for (int i=0; i<toConsolidate.length; i++) {
            for (int k=0; k<toConsolidate.length-1; k++) {
                if (toConsolidate[k] == 0){
                    toConsolidate[k] = toConsolidate[k+1];
                    toConsolidate[k+1] = 0;
                }
            }
        }
        for (int i:toConsolidate)
            System.out.print(i+" ");
    }
}

จำนวนเต็มหรือหลักเดียวเช่นตัวอย่าง?
edc65

@ edc65 จำนวนเต็มใด ๆ ที่ภาษาของคุณรองรับ
Addison Crump

ตัวอย่างจะซับซ้อนอย่างไรเมื่อคำตอบที่สั้นที่สุดมีความยาว 3 ตัวอักษร? Java นั้น verbose มาก?
อัล

7
ไม่ใช่ "ไม่ควรมี 0s ระหว่างจำนวนเต็มที่ไม่ใช่ศูนย์" ซ้ำซ้อน?
Martin Ender

1
@immibis อาจไม่ใช่ภาษาที่เหมาะสมสำหรับความท้าทายนี้ : P
Addison Crump

คำตอบ:


31

Pyth, 3 ไบต์

!DQ

คำอธิบาย:

  Q    Input
!D     Sort by logical NOT

ลองมันนี่


Qสามารถบอกเป็นนัยได้ในตอนท้ายของสคริปต์ Pyth ใด ๆ (สมมติว่ามันอยู่นอกแลมบ์ดาซึ่งนี่คือ) ทำให้มีขนาด 2 ไบต์
hakr14

@ hakr14 คุณลักษณะนั้นไม่มีอยู่เมื่อ 2 ปีก่อน
Dennis

12

เยลลี่ 3 ไบต์

¬Ụị

เรียงลำดับรายการตามค่าตรรกะไม่ใช่ค่า ลองออนไลน์!

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

¬Ụị    Main link. Input: A (list)

¬      Compute the logical NOT of each element of A.
 Ụ     Grade up; sort the resulting list's indices by their corresponding values.
  ị    Retrieve the elements of A at that indices.

1
โอ้เฮ้วุ้นที่ทันสมัยสามารถทำ 2 ไบต์¬Þได้!
Lynn

10

อ็อกเทฟ, 18 ไบต์

@(A)[A(~~A) A(~A)]

sort()ใช้ไบต์มากเกินไป ฉันจะใช้การจัดทำดัชนีเชิงตรรกะ

ตัวอย่างideone


ทำได้ดีมาก +1
rayryeng - Reinstate Monica

ว้าวทำงานใน Matlab ด้วย! ฉันไม่ทราบว่าการจัดทำดัชนีเป็นไปได้
brainkz

9

R, 29 23 21 ไบต์

ตามที่ระบุไว้โดย MarcoBreitig เราสามารถย่อให้เหลือ 21 ไบต์หากเราไม่ต้องการให้เป็นฟังก์ชัน:

x=scan();x[order(!x)]

รุ่นก่อนหน้า:

function(x)x[order(!x)]

ฟังก์ชั่นใช้เวกเตอร์เป็นอินพุตและคำสั่งโดยเวกเตอร์ตรรกะที่เป็นผลมาจากการปฏิเสธอินพุต

คำตอบเดิม:

function(x)c(x[x!=0],x[x==0])

ฟังก์ชั่นใช้เวกเตอร์เป็นอินพุตและเชื่อมต่อ ( c()) ค่าที่ไม่เป็นศูนย์จากนั้นจึงเป็นค่าศูนย์


2
x = scan (); x [order (! x)] มีความยาวเพียง 21 ไบต์
Marco Breitig

@MarcoBreitig ถูกต้องแล้ว ฉันคิดว่ามันควรจะเป็นฟังก์ชั่น (และเริ่มแรกความต้องการคือ "โปรแกรมเต็มเปี่ยม") จะอัปเดตคำตอบของฉัน
docendo discimus


7

ES6, 23 ไบต์

a=>a.sort((x,y)=>!x-!y)

มันเคยเป็นกรณีที่sortไม่เสถียรในกรณีที่คุณต้องการ 41 ไบต์:

a=>a.filter(x=>x).concat(a.filter(x=>!x))

6

Python รหัสไบต์ (2.7.9), 252 ไบต์, 33 opcodes, 0.0228 วินาที

สิ่งนี้สร้างขึ้นเมื่อการประกวดยังคงเป็นการประกวดที่

เปิดไฟล์ในไดเรกทอรีปัจจุบันที่เรียกว่า'SourceArray'ใช้งาน

LOAD_CONST          ''
STORE_FAST          no_zeroes#  no_zeroes = ''

LOAD_NAME           open
LOAD_CONST          'SourceArray'
CALL_FUNCTION       0,1#  open('SourceArray')
LOAD_ATTR           read
CALL_FUNCTION       0,0#  .read()

LOAD_ATTR           split
CALL_FUNCTION       0,0#  .split()

DUP_TOP
DUP_TOP             #Start if
BUILD_LIST          0
COMPARE_OP          ==
POP_JUMP_IF_TRUE    35#  if list == [], GOTO 35
LOAD_ATTR           pop
LOAD_CONST          0
CALL_FUNCTION       0,1#  list.pop(0)
DUP_TOP
LOAD_CONST          '0'
COMPARE_OP          ==
POP_JUMP_IF_TRUE    28#  if list.pop(0) == '0', GOTO 28
PRINT_ITEM          #  print list.pop(0)
JUMP_ABSOLUTE       13

POP_TOP
LOAD_CONST          '0%_'#  '0 '
LOAD_FAST           no_zeroes
INPLACE_ADD
STORE_FAST          no_zeroes#  no_zeroes = no_zeroes + '0 '
JUMP_ABSOLUTE       13

LOAD_FAST           no_zeroes
PRINT_ITEM          #  print no_zeroes

LOAD_CONST          None
RETURN_VALUE

co_code(บิต Codey จริง)

'd\x01\x00}\x00\x00\te\x00\x00\x83\x00\x00\tj\x01\x00\x83\x00\x00\t\x04\x04g\x00\x00k\x02\x00sG\x00j\x02\x00d\x02\x00\x83\x01\x00\x04d\x03\x00k\x02\x00s8\x00Gq\x15\x00\t\x01d\x04\x00|\x00\x007}\x00\x00q\x15\x00\t|\x00\x00G\td\x00\x00S'

หรือรุ่นของไฟล์. pyc 03F3

03 F3 0D 0A 40 FD B0 56 63 00 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 73 59 00 00 00 64 01 00 7D 00 00 09 65 00 00 64 02 00 83 01 00 6A 01 00 83 00 00 09 6A 02 00 83 00 00 09 04 04 67 00 00 6B 02 00 73 50 00 6A 03 00 64 03 00 83 01 00 04 64 04 00 6B 02 00 73 41 00 47 71 1E 00 09 01 64 05 00 7C 00 00 37 7D 00 00 71 1E 00 09 7C 00 00 47 09 64 00 00 53 28 06 00 00 00 4E 74 00 00 00 00 74 0B 00 00 00 53 6F 75 72 63 65 41 72 72 61 79 69 00 00 00 00 74 01 00 00 00 30 73 02 00 00 00 30 20 28 04 00 00 00 74 04 00 00 00 6F 70 65 6E 74 04 00 00 00 72 65 61 64 74 05 00 00 00 73 70 6C 69 74 74 03 00 00 00 70 6F 70 28 01 00 00 00 74 09 00 00 00 6E 6F 5F 7A 65 72 6F 65 73 28 00 00 00 00 28 00 00 00 00 74 09 00 00 00 70 79 6B 65 5F 63 6F 64 65 52 08 00 00 00 01 00 00 00 52 00 00 00 00

คุณสามารถลองรวบรวมซอร์สโค้ดของตัวเองด้วยการใช้ไลบรารี่ของฉันบน github ฉันเพิ่งโพสต์คอมมิชชันที่อนุญาตความคิดเห็นดังนั้นฉันหวังว่านี่จะยังคงมีการแข่งขันตราบใดไป)

เทียบเท่ากับ

no_zeroes = ''
unamed_variable = open('SourceArray').read().split()
while unamed_variable != []:
    unamed_variable_2 = unamed_variable.pop()
    if unamed_variable_2 == '0':
        no_zeroes += '0 '
    else:
        print unamed_variable_2,
print no_zeroes,

WOOOW คุณตัดตันของเวลาออกจากที่
Addison Crump

@VoteToClose ประมาณ 1.5 เท่าความเร็วที่ใช้บนแล็ปท็อปของฉัน: O ใครบอกว่า Python นั้นช้ามาก?
บลู

6

Python ขนาด 32 ไบต์

lambda x:sorted(x,key=0..__eq__)

ใช้อาร์กิวเมนต์เป็น iterable ใด ๆ (รายการ tuple ฯลฯ ) ขอบคุณ @xnor ที่สอนให้ฉันรู้เคล็ดลับใหม่!


มันใช้งานได้สั้นกว่าเล็กน้อยkey=0..__eq__(ใช่สองจุด)
xnor

@xnor เรียบร้อยดี ... มันทำงานยังไง?
Mego

7
"abc".__eq__("abc")==Trueงูหลามส่วนใหญ่วัตถุมีวิธีการเท่าเทียมกันดังนั้นสำหรับตัวอย่างเช่น "abc"==มันเป็นสิ่งที่เรียกว่าเมื่อคุณทำ สำหรับเหตุผลจำนวนเต็มหลามไม่ได้แต่ลอยทำและเนื่องจาก0. == 0เราสามารถใช้แทนผู้ประกอบเสมอภาค. 0..__eq__ซึ่งเป็น
xnor

@ xnor ahh ฉันรู้เกี่ยวกับ.__eq__วิธีการ แต่จุดสองครั้งทำให้ฉันสับสน ฉันไม่เข้าใจว่าอันแรกคือจุดทศนิยมในตัวอักษรลอย
Mego

6

Matlab: 21 ไบต์

@(a)[a(a~=0),a(a==0)]

พิมพ์องค์ประกอบที่ไม่ใช่ศูนย์ก่อนจากนั้นเชื่อมต่อกับองค์ประกอบที่เป็นศูนย์

@(a)____ สร้างฟังก์ชั่นที่ไม่ระบุชื่อด้วยอาร์กิวเมนต์อินพุตหนึ่งรายการ a

[___,___] เชื่อมต่อเวกเตอร์ในแนวนอนภายในวงเล็บคั่นด้วยเครื่องหมายจุลภาค

a(a~=0) ส่งคืนเวกเตอร์ที่มีองค์ประกอบที่ไม่ใช่ศูนย์ทั้งหมดของเวกเตอร์ a

a(a==0) ส่งคืนเวกเตอร์ที่มีองค์ประกอบศูนย์ทั้งหมดของเวกเตอร์ a


5

Haskell, 26 ไบต์

f x=filter(/=0)x++[0|0<-x]

ใช้ตัวเลขที่ไม่เป็นศูนย์ทั้งหมดตามด้วยศูนย์ทั้งหมด การกรองค่าคงที่ (ที่นี่: 0) [0|0<-x]ค่อนข้างสั้นเมื่อใช้ความเข้าใจรายการ:


5

Zsh, 22 ไบต์

(อินพุตถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังสคริปต์ / ฟังก์ชั่น ( $@อาคา$argvอาร์เรย์), เอาต์พุตบน stdout เป็นรายการที่คั่นด้วยช่องว่าง, ยกเลิกการขึ้นบรรทัดใหม่)

<<<${@:#0}\ ${(M)@:#0}
  • <<< string: here-string ที่นี่ส่งผ่านเป็น stdin ไปยัง$NULLCMDคำสั่ง ( catโดยค่าเริ่มต้น)
  • ${@:#0} $@ ยกเว้นองค์ประกอบเป็น 0
  • ${(M)@:#0} กลับด้านบน

ซึ่งถือว่า (เช่นคำตอบอื่น ๆ ที่นี่) ซึ่งเลขศูนย์ในอินพุตทั้งหมดแสดงเป็น0(ไม่ใช่00หรือ0x0ไม่36#0)


4

Javascript, 52 54 51 ไบต์

s=>s.replace(/\b0 /g,x=>++i&&'',i=0)+' 0'.repeat(i)

สิ่งนี้ไม่ทำงานเมื่ออินพุตไม่ประกอบด้วยศูนย์ใด ๆ
rink.attendant.6

@ rink.attendant.6 ขอขอบคุณฉันได้อัปเดตและยังคงมองหาบางไบต์ปิด :)
เอาออก


4

APL: 8 ไบต์

(⍴a)↑a~0

a ~ 0 ลบค่าศูนย์จาก a (อ่าน "a ไม่มี 0")
(⍴a) ความยาวดั้งเดิมของ a (อ่าน "รูปร่างของ a")
↑ pad a โดยไม่มีศูนย์ถึงความยาวดั้งเดิม

ลองใช้ในhttp://ngn.github.com/apl/web/index.html

ข้อมูลการทดสอบ: a ← 1 0 1 2 3 4 0 1 0 0 0 0 1 2 3 4 5


1
คุณควรเขียนโปรแกรมทั้งหมดและอ่านอินพุตจาก stdin หรือเขียนฟังก์ชันและอ่านอินพุตจากพารามิเตอร์ แต่คุณสามารถใช้⍴↑{⍵~0}และนั่นก็สั้นกว่า
jimmy23013

ไม่เร็วนัก ⍴↑ {⍵ ~ 0} ไม่สามารถทำงานได้ทุกที่ไม่ใช่ใน APL2000 หรือใน IBM APL2
Lobachevsky

⍴↑ {⍵ ~ 0} จะคืนค่าเวกเตอร์เปล่า ⍴⍴↑ {⍵ ~ 0} เป็น (เวกเตอร์องค์ประกอบหนึ่ง) เป็นศูนย์
Lobachevsky

4

Java 7, 78 ไบต์

void g(int[]a){int c=0;for(int o:a)a[o==0?c:c++]=o;for(;c<a.length;a[c++]=0);}

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


เฮ้ฉันใช้มันเพราะฉันรู้สึกเหมือนมัน ฉันคิดว่าคุณควรจะสามารถที่จะประกาศกับo int c=0,o;for(o:a)...คุณยังสามารถแปลงเป็นไวยากรณ์ lambda ของ Java 8 a->{int c=0;for(int o:a)a[o==0?c:c++]=o;for(;c<a.length;a[c++]=0);}และระบุว่าต้องการอินพุตเป็นอาร์เรย์ int
Addison Crump

เดี๋ยวก่อนเกาสิ่งที่ประกาศ o แต่ถึงกระนั้น java 8 แลมบ์ดา : D
Addison Crump

@VoteToClose ฉันคิดว่ามันต้องมีในตัวเอง หากฉันสามารถประกาศประเภทและสิ่งของอื่น ๆ ได้โดยไม่ต้องนับว่าไม่ถูกต้อง
Marky Markov

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

3

Lisp ทั่วไป, 46 ไบต์

(lambda(a)(stable-sort a(lambda(_ b)(= 0 b))))

เรียงลำดับอาร์เรย์เพื่อให้แต่ละคู่(a, b)เรามี<bถ้าbเป็นศูนย์ เมื่อไม่ใช่<bหรือb <aการเรียงลำดับจะเสถียร: ลำดับเดิมระหว่างองค์ประกอบจะยังคงอยู่

ฉันยังลองปรับเปลี่ยนและเอาออกแต่มันยาวเกินไป:

(lambda(a)(adjust-array(remove 0 a)(length a):initial-element 0))

3

PHP, 73 71 70 52 49 48 46 ไบต์ - ใหญ่ขอบคุณIsmael Miguel

// Assuming
$a = array(4,8,6,1,0,8,0,0,0,0,0,-4,'-5',-1,564,0);

// Produces a notice-level error
foreach($a as$v)$v?print"$v ":$b.="0 ";echo$b;

1
$v==0สามารถถูกแทนที่ด้วย!$vช่วยให้คุณ 2 ไบต์
Ismael Miguel

@IsmaelMiguel ขอบคุณ!
MonkeyZeus

ไม่เป็นไร ฉันเห็นว่าคุณจัดการเพื่อตัดไบต์ foreach($argv as$v)$v?$f.=" $v":$b.=" $v";echo$f.$b;ลองนี้: มันคือ .... บางไบต์ฉันไม่รู้ ...
Ismael Miguel

2
หรือforeach($a as$v)$v?print("$v "):$b.="$v ";echo$b;สำหรับวิธีที่เป็นระเบียบมากขึ้นซึ่งมีลักษณะเหมือนกันทุก
ประการ

1
@IsmaelMiguel Nice! ฉันจะร้องไห้ถ้าฉันต้องไปรับโครงการของคนอื่นและพบระดับการเล่นกอล์ฟรหัสนี้
MonkeyZeus

3

ยูทิลิตี Bash + GNU, 23

grep -v ^0 a
grep ^0 a

ถือว่าอินพุตรายการ newline aแยกในไฟล์ที่เรียกว่า คะแนนรวม +1 สำหรับชื่อไฟล์นี้


@sch ใช่มันควรจะทุบตี - แก้ไข
Digital Trauma

@ TimmyD ใช่ - ขอบคุณสำหรับการเตือน
Digital Trauma


2

CJam, 6 ไบต์

{{!}$}

ฟังก์ชั่นที่ไม่ระบุชื่อ จัดเรียงโดยใช้“ องค์ประกอบนั้นเป็นศูนย์หรือไม่” เป็นคีย์





2

Perl6, 11 ไบต์

{.sort(!*)}

สร้างบล็อก - ซึ่งสามารถเรียกใช้บนอาเรย์:

{.sort(!*)}.([1,2,0,3]).say

แม้ว่ามันจะเป็นธรรมชาติมากขึ้น (และสั้นกว่า) ในการเขียน:

[1,2,0,3].sort(!*).say

วิธีการทำงาน: ถ้าเรียงลำดับประจำ Perl6เรียกว่ามีบล็อกที่รับเพียงหนึ่งอาร์กิวเมนต์, by($a) cmp by($b)องค์ประกอบของรายการจะเรียงตาม ในกรณีนี้บล็อกคือ!*การปฏิเสธของผู้ประกอบการใด

ฉันสังเกตเห็นว่า:

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

2

TeX (รูปแบบธรรมดา), 160 ไบต์

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

บันทึกสิ่งนี้เป็นzero.texและให้อินพุตผ่านบรรทัดคำสั่งด้วยคำสั่งนี้:

pdftex "\def\I{0 1 0 3 2 0 0 8 0 5 0 1 9 4}\input zero"
\def\I{}\newcount\Z\def\L{\loop\advance\Z by-1\ifnum\Z>00 \repeat}
\begingroup\catcode`\013 \def0{\advance\Z by1}
\scantokens\expandafter{\I\empty}\endgroup\L\bye

(เพิ่มบรรทัดใหม่เพื่อความชัดเจน)

ป้อนคำอธิบายรูปภาพที่นี่


2

J, 4 ไบต์

/:0=

คำอธิบาย:

/:      NB. upward sort on
  0=    NB. equality to zero

ฟังก์ชั่นการจัดเรียงใน J รับประกันว่าจะมีเสถียรภาพตามข้อกำหนด

โซลูชันทางเลือก 6 ไบต์:

#{.*#+

 

   *#+  NB. replicate each item by its sign (removing zeroes)
#{.     NB. take as many items from this as the original list had
        NB.  (taking more items than there are in a list results in extra zeroes)

2

Straw , 30 29 ไบต์

<:([^0 ])()/,0()/ +,+( +) /}>

ใช้การเข้ารหัส CP437

คำอธิบาย

<:([^0 ])()/,0()/ +,+( +) /}>
<                             Take input
 :                            Duplicate
  ([^0 ])()/                  Remove every character that is not a 0 or a space
            ,                 Swap the two items on the top of the stack
             0()/             Remove every 0 on the top of the stack
                  +           Push a space and concatenate
                   ,          Swap
                    +         Concatenate
                     ( +) /   Remove duplicate spaces
                           }  Get the 'tail' of the string
                            > Output

ลองออนไลน์! (รหัสเพิ่มเติมคือการทดสอบกรณีทดสอบทั้งหมด)




1

05AB1E , 15 14 ไบต์

รหัส:

ED0¢r0KR`rFZ}|

คำอธิบาย:

E               # Evaluate input
 D              # Duplicate top of the stack
  0¢            # Count zeroes
    r           # Reverse stack
     0K         # Delete all zeroes
       R        # Reverse top of the stack
        `       # Flatten
         r      # Reverse stack
          FZ}   # For N in range(amount zeroes): push zero
             |  # Print full stack

ใช้การเข้ารหัส CP-1252 ใช้อาร์เรย์เช่นนี้

[0, 5, 8, 8, 3, 5, 1, 6, 8, 4, 0, 3, 7, 5, 6, 4, 4, 7, 5, 6, 7, 4, 4, 9, 1, 0, 5, 7, 9, 3, 0, 2, 2, 4, 3, 0, 4, 8, 7, 3, 1, 4, 7, 5, 1, 2, 1, 8, 7, 8, 7, 7, 2, 6, 3, 1, 2, 8, 5, 1, 4, 2, 0, 5, 0, 6, 0, 3]
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.