การรับรู้ตำแหน่ง


10

การรับรู้ตำแหน่ง

งานของคุณคือการสร้างโปรแกรมที่สำหรับการเปลี่ยนแปลงตัวละครทุกตัว (ซึ่งรวมถึงโปรแกรมต้นฉบับ) ผลลัพธ์ของตำแหน่งของตัวละครทุกตัวที่สัมพันธ์กับโปรแกรมต้นฉบับ

หากโปรแกรมของคุณคือ

Derp

คุณต้องส่งออก

[0, 1, 2, 3]

(หรือเทียบเท่าบางส่วน) นี้เป็นเพราะDอยู่ใน0ตำแหน่ง, th eอยู่ใน1St, การวิจัย2ครั้งและถp3

ลองอีกโปรแกรมหนึ่งซึ่งเป็นโปรแกรมดั้งเดิม แต่ด้วยตัวอักษรที่อนุญาต:

epDr

คุณต้องส่งออก

[1, 3, 0, 2]

เพราะeอยู่ใน1ตำแหน่ง ST ของโปรแกรมเดิมที่pอยู่ใน3ตำแหน่งถ, th และครั้งD0r2

หากโปรแกรมดั้งเดิมมีอักขระซ้ำสองตัว:

abcda -> [0, 1, 2, 3, 4]

จากนั้นสำหรับการเรียงสับเปลี่ยน, 0และ4ในแถวลำดับจะต้องเรียงลำดับจากน้อยไปมาก:

baadc -> [1, 0, 4, 3, 2] (0 first, then 4)

กฎ:

  • โปรแกรมของคุณต้องมีอักขระที่ไม่ซ้ำอย่างน้อยสองตัว
  • floor(n/2)อักขระส่วนใหญ่จะต้องเหมือนกัน

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • เอาต์พุตของโปรแกรมของคุณอาจเป็นอาเรย์ (หรือบางอย่างที่คล้ายกัน) ที่มีตำแหน่งอักขระทั้งหมดตามลำดับหรือสตริงที่มีตัวคั่นใด ๆ ดังนั้นสิ่งเหล่านี้จึงเป็นสิ่งที่ดีอย่างสมบูรณ์:

    [0, 1, 2, 3]
    0,1,2,3
    0 1 2 3
    

7
ฉันไม่เชื่อว่าการท้าทายนี้อนุญาตให้ใช้วิธีแก้ปัญหาที่ไม่สำคัญเพราะคำตอบใด ๆ ในภาษาที่มีความยาว> = ~ 5 จะไม่เป็นโปรแกรมที่ถูกต้องสำหรับการเปลี่ยนรูปทุกครั้ง
orlp

1
@ Qwerp-Derp เกือบจะไม่มีใครพูดอะไรบนกล่องทราย ไม่นานมานี้ฉันโพสต์คำถามหลังจากอยู่ในแซนด์บ็อกซ์นานประมาณหนึ่งเดือน (หรือมากกว่านั้น) และเฉพาะเมื่อฉันโพสต์ไว้ก็คือเมื่อมีคนชี้ให้เห็นข้อผิดพลาดและ downvotes ฝนตก ในความเห็นของฉันกล่องทรายไม่มีประโยชน์
Ismael Miguel

1
สำหรับครั้งเดียวฉันรู้สึกว่าในความท้าทายนี้คำตอบที่ยาวกว่าน่าประทับใจกว่าคำตอบที่สั้นกว่า
Wojowu

1
@Woowowu ฉันสามารถทำให้มันเป็นรหัสโบว์ลิ่งถ้าเป็นไปได้ - โปรแกรมที่ยาวที่สุดชนะ
clismique

1
โปรแกรม12ใน R จะใช้ได้หรือไม่ มันก็จะพิมพ์12และถ้าอนุญาต; 21.
Billywob

คำตอบ:


21

จริงแล้ว 2 ไบต์

10

ลองออนไลน์!

ภาพพิมพ์นี้

0
1

ในขณะที่การเปลี่ยนแปลงอื่น ๆ (เท่านั้น)

01

พิมพ์

1
0

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

ในความเป็นจริงตัวเลขที่ต่อเนื่องกันจะถูกแยกวิเคราะห์แยกดังนั้น10กด1บนสแต็กจากนั้น0ที่ด้านบนของมัน

เมื่อเสร็จสิ้นโปรแกรมสแต็คที่จะถูกพิมพ์บนลงล่างดังนั้นจึงพิมพ์0แรกแล้วเลื่อนบรรทัดแล้ว1

โปรแกรม derranged 01ทำเช่นเดียวกันตามลำดับที่ตรงกันข้าม


1
ภาษาอื่นที่ใช้งานได้ จริงจัง, 05ab1e, ///, 2sable
นกกระทุงนกเป็ดน้ำ

ข้อมูลจำเพาะบอกว่าต้องแยกตัวเลขออก มันใช้งานได้ใน Seriously แต่จริงๆแล้วเป็นแค่ 2.0 Seriously
เดนนิส

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