Jimmy cần một đôi giày mới!


12

Tuần trước, Jimmy đã có một tuần bận rộn với tất cả các nền tảng dây thừng này , và anh chàng tội nghiệp Jimmy thậm chí không có chân hoặc chân để đứng!


Công việc của bạn là lấy một chuỗi chứa nhiều Jimmys và đưa cho họ chân và giày!

Nhận đầu vào dưới dạng một chuỗi Jimmy

Chuỗi Jimmy => /o\ /o\ /o\

chỉ chứa /o\

cung cấp cho mỗi Jimmy trong đầu vào một đôi chân trông như thế này:

 /o\
_/ \_

Biến chuỗi đầu nổi được nhập vào thành chuỗi Jimmy bằng chuỗi chân, như vậy:

// Input

       /o\   /o\          /o\

// Output

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

Nếu 2 Jimmys ở gần nhau, họ phải di chuyển để nhường chỗ, Jimmys sẽ luôn di chuyển về phía bên phải để nhường chỗ cho các Jimmys khác.

// Input

/o\/o\

// Output

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

Các Jimmys khác ở xa hơn không được di chuyển trừ khi cần thiết

// Input

/o\/o\      /o\

// Output

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

// Input

/o\/o\    /o\

// Output

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

Quy tắc chuẩn và sơ hở áp dụng,

Đây là môn đánh gôn, vì vậy có thể câu trả lời ngắn nhất sẽ thắng.


Trường hợp thử nghiệm được đề xuất : /o\<sp>/o\<sp><sp><sp><sp><sp><sp><sp><sp>/o\/o\, triển khai hiện tại của tôi không thành công vì nó di chuyển hai Jimmies cuối cùng sang trái thay vì phải .. Tuy nhiên, tất cả các trường hợp thử nghiệm của bạn đều thành công.
Kevin Cruijssen

Câu trả lời:



3

Ruby -p , 77 75 byte

Quy tắc "không di chuyển Jimmy nếu không cần thiết" là một thử thách khá khó khăn để giải quyết nhưng tôi nghĩ nó đã hoạt động khá tốt. Ít hơn Python một chút (ít nhất là tại thời điểm viết bài).

-2 byte từ đệ quy.

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

Hãy thử trực tuyến!


Bạn có thể sử dụng \S+thay \/\S*thế?
đệ quy

3

PowerShell , 96 byte

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

Hãy thử trực tuyến!

Chưa được kiểm soát:

$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

Than , 28 byte

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

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Giải trình:

 

In một khoảng trống để đánh bại lề trái tự động của Char than.

F⌕Aθ/«

Vòng qua tất cả các cánh tay trái.

J∧ι⊖ι¹

Nhảy đến vị trí chân trái mong muốn. Lưu ý rằng Char than không có vấn đề gì khi vẽ (-1, 1), nhưng câu hỏi không cho phép điều đó, vì vậy chúng tôi phải cẩn thận để tránh vẽ ở các vị trí tiêu cực.

WKK→

Di chuyển qua bất kỳ đầu ra hiện có.

P_/ \_M↗/o\

Đầu ra chân và sau đó di chuyển đến đầu ra Jimmy.


2

Võng mạc ,40 37 byte

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

Hãy thử trực tuyến!

Cảm ơn Value Ink vì đã chơi golf 3 byte.


4
Tận hưởng đôi giày mới của bạn!
Quinn

1
Chà, cố gắng giả vờ những thách thức này không tồn tại trong một thời gian. (Không liên quan đến điều đó.)
jimmy23013

Tôi tin rằng kết quả khớp mẫu mà tôi đã sử dụng trong câu trả lời Ruby của tôi (\\ ?|^)(/\S*) ?ngắn hơn so với kết quả trong dòng đầu tiên của bạn và sẽ cho kết quả tương tự (có lẽ; tôi hoàn toàn không biết Retina)
Value Ink


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.