Phân tích các điện trở


8

Mục đích rất đơn giản: đưa ra chuỗi các giá trị điện trở, vẽ phần "mạch điện" của các điện trở đó. Ví dụ sau.

  1. Đầu vào : 3. Đầu ra:

    --3--
    
  2. Đầu vào : 1,2,3. Đầu ra:

    --1----2----3--
    

Tiếp theo, các điện trở có thể được nối song song (bằng 2 hoặc 3 điện trở trên mỗi lần nối), nhưng độ sâu cần thiết của các phép nối song song chỉ là 1.

  1. Đầu vào : 1|2. Đầu ra:

     |--1--|
    -|     |-
     |--2--|
    
  2. Đầu vào : 1|2|3. Đầu ra:

     |--1--|
    -|--2--|-
     |--3--|
    

    Lưu ý , --2--điện trở đó bây giờ là trung tâm.

  3. Đầu vào : 1|2,3|4|5. Đầu ra:

     |--1--|  |--3--|
    -|     |--|--4--|-
     |--2--|  |--5--|
    

Kết hợp tham gia:

  1. Đầu vào : 1,2,3|4,5,6|7|8,9. Đầu ra:

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

Nếu nó thuận tiện hơn, đầu vào có thể là một mảng hai chiều. Tức là đầu vào cho ví dụ cuối cùng sẽ như thế này : [1,2,[3,4],5,[6,7,8],9].

Một số lưu ý:

  • Không cho phép các hình thức đặt (vào | ra) khác.
  • Điện trở của mỗi điện trở có thể thay đổi trong phạm vi từ 1 đến 9. Các giá trị khác, như -, 42hoặc 0không được phép.
  • Các tham gia như 1|2|3|4không hợp lệ. Như đã đề cập, tối đa 3 mỗi lần tham gia song song. Tham gia trống, tức là ...,|,...hoặc ...,,...không hợp lệ.
  • Ồ, và đây là mã golf :)

Cảm ơn đã sửa, đó là một số dấu gạch ngang cố định. Các điện trở riêng biệt được đi trước và theo sau là hai dấu gạch ngang.
nicael

Dòng đầu tiên và thứ ba có thể được đệm với các khoảng trống đến cả chiều dài của các dòng không?
TFeld

@Tfeld Trailing / khoảng trắng hàng đầu được phép trước / sau toàn bộ đầu ra, nhưng không phải giữa các điện trở.
nicael

Các đường trống dẫn đầu / dấu có được phép khi không có điện trở song song không?
PurkkaKoodari

@Pietu Hừm, để nó là có :)
nicael

Câu trả lời:


2

Python 2, 195 byte

a=b=c=''
B=' '*5
H='--'
S=' |'+H;E=H+'| '
for x in input():
 if x>9:a+=S+`x[0]`+E;c+=S+`x[-1]`+E;b+='-|'+[B,H+`x[1]`+H][len(x)>2]+'|-'
 else:b+=H+`x`+H;a+=B;c+=B
print[b,a+'\n'+b+'\n'+c]['|'in a]

Đưa đầu vào là:

[1,2,[3,4],5,[6,7,8],9]

Đầu ra:

           |--3--|       |--6--|      
--1----2---|     |---5---|--7--|---9--
           |--4--|       |--8--|      
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.