จิมมี่ต้องการรองเท้าคู่ใหม่!


13

จิมมี่มีงานยุ่งเมื่อสัปดาห์ที่แล้วกับแพลตฟอร์มและเชือกเหล่านี้ และจิมมี่ผู้น่าสงสารไม่มีแม้แต่ขาหรือเท้าที่จะยืน!


งานของคุณคือรับเชือกที่มี Jimmys หลายอันและมอบขาและรองเท้าให้พวกเขา!

รับอินพุตในรูปแบบของ Jimmy String

Jimmy String => /o\ /o\ /o\

มีเพียง/o\และ

ให้ Jimmy แต่ละคนใส่เท้าที่มีลักษณะดังนี้:

 /o\
_/ \_

เปลี่ยนสตริงจิมมี่ที่ลอยอยู่ในหัวที่ป้อนเข้าไปในจิมมี่ด้วยสายฟุตเช่น:

// Input

       /o\   /o\          /o\

// Output

       /o\   /o\          /o\
      _/ \_ _/ \_        _/ \_

หาก 2 Jimmys อยู่ใกล้กันพวกเขาจะต้องย้ายไปทำห้องให้ว่าง Jimmys จะย้ายไปทางขวาเสมอเพื่อให้มีที่ว่างสำหรับ Jimmys อื่น ๆ

// Input

/o\/o\

// Output

 /o\  /o\
_/ \__/ \_

Jimmys อื่น ๆ ที่อยู่ห่างออกไปจะต้องไม่ถูกเคลื่อนย้ายเว้นแต่จำเป็น

// Input

/o\/o\      /o\

// Output

 /o\  /o\   /o\
_/ \__/ \_ _/ \_

// Input

/o\/o\    /o\

// Output

 /o\  /o\  /o\
_/ \__/ \__/ \_

ใช้กฎมาตรฐานและช่องโหว่

นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดอาจชนะ


กรณีทดสอบที่แนะนำ: /o\<sp>/o\<sp><sp><sp><sp><sp><sp><sp><sp>/o\/o\การใช้งานปัจจุบันของฉันล้มเหลวเพราะมันย้าย Jimmies สองอันสุดท้ายไปทางซ้ายแทนที่จะเป็นขวา .. กรณีทดสอบทั้งหมดของคุณประสบความสำเร็จ
Kevin Cruijssen

คำตอบ:


3

Python 2 , 131 120 115 114 121 118 118 ไบต์

o=1;W=[]
for g in map(len,input().split('/o\\')):W+=[' '*(g-o)];o=max(o-g,0)+2
for q in' /o\ ','_/ \_':print q.join(W)

ลองออนไลน์!

4 ไบต์ขอบคุณไปที่movatica ; 10 ไบต์หายไปเพื่อแก้ไขข้อบกพร่อง


1
o+=2-len(g)ช่วยให้คุณ byte
movatica


1
@movatica: มีข้อผิดพลาด แต่มันก็ชดเชยด้วยการแก้ไขของคุณ :)
Chas Brown

3

Ruby -p , 77 75 ไบต์

กฎ "อย่าย้ายจิมมี่หากไม่ต้องการ" เป็นบททดสอบที่ค่อนข้างลำบาก แต่ฉันคิดว่ามันทำได้ค่อนข้างดี น้อยกว่า Python อย่างน้อย (ตอนที่เขียน) อย่างน้อย

-2 ไบต์จากแบบเรียกซ้ำ

r=/(\\ ?|^)(\S+) ?/
gsub(r){"#$1 #$2"}while~r
puts$_
gsub(/ .o. ?/,'_/ \_')

ลองออนไลน์!


คุณสามารถใช้\S+ในสถานที่ของ\/\S*?
ซ้ำ

3

PowerShellขนาด 96 ไบต์

($o=$args-split'/o.'|%{' '*($w=($l+=$_.Length-1)*($l-gt0));$l-=$w+1})-join' /o\ '
$o-join'_/ \_'

ลองออนไลน์!

คลี่:

$o=$args-split'/o.'|%{
    $len += $_.Length-1
    $width = $len*($len-gt0)    # len or 0, if len < 0
    ' '*$width
    $len -= $width+1
}
# $o is array of space strings now
$o-join' /o\ '
$o-join'_/ \_'


2

ถ่าน 28 ไบต์

 F⌕Aθ/«J∧ι⊖ι¹WKK→P_/ \_M↗/o\

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

 

พิมพ์ช่องว่างเพื่อกำจัดระยะขอบซ้ายอัตโนมัติของ Charcoal

F⌕Aθ/«

วนแขนซ้ายทั้งหมด

J∧ι⊖ι¹

ข้ามไปยังตำแหน่งเท้าซ้ายที่ต้องการ โปรดทราบว่าถ่านไม่มีปัญหาในการวาด(-1, 1)แต่คำถามไม่อนุญาตดังนั้นเราจึงต้องระมัดระวังเพื่อหลีกเลี่ยงการวาดภาพในตำแหน่งเชิงลบ

WKK→

เลื่อนผ่านเอาต์พุตที่มีอยู่

P_/ \_M↗/o\

เอาท์พุทเท้าแล้วย้ายไปที่เอาต์พุตจิมมี่


2

จอประสาทตา40 37 ไบต์

\+`(^|\S.)(/\S*) ?
$1 $2
 /o. ?
_/ \_

ลองออนไลน์!

ขอบคุณ Value Ink สำหรับการตีกอล์ฟขนาด 3 ไบต์


4
สนุกกับรองเท้าใหม่ของคุณ!
Quinn

1
ทีนี้พยายามที่จะเสแสร้งความท้าทายเหล่านี้ไม่ได้มีอยู่พักหนึ่ง (ไม่มีความสัมพันธ์กับจิมมี่)
jimmy23013

ฉันเชื่อว่ารูปแบบการจับคู่ที่ฉันใช้ในคำตอบ Ruby ของฉัน(\\ ?|^)(/\S*) ?สั้นกว่าแบบแรกในบรรทัดแรกของคุณและควรให้ผลลัพธ์เดียวกัน (อาจเป็นเพราะฉันไม่รู้ Retina เลย)
Value Ink


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