ท้าทาย:
การป้อนข้อมูล:
คุณรับสองอินพุต:
- สตริงประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น (ไม่รวมช่องว่างแท็บหรือบรรทัดใหม่)
- อักขระ ASCII ที่พิมพ์ได้
เอาท์พุท:
บรรทัดแรกจะมีการป้อนสตริง ทุกi
-modulo-3 ครั้งแรกที่เกิดขึ้นของตัวละครนี้จะย้ายไปในทิศทางที่ตะวันออกเฉียงใต้; ทุกi
-modulo-3 วินาทีที่เกิดขึ้นจะย้ายในทิศทางใต้; และทุก ๆi
-modulo-3 เหตุการณ์ที่สามจะย้ายในทิศทางตะวันตกเฉียงใต้ คุณจะดำเนินการต่อไปจนกว่าอักขระจะอยู่ในตำแหน่งเริ่มต้นเริ่มต้นของพวกเขาอีกครั้ง (ซึ่งหมายความว่ามันจะถูกล้อมรอบจากด้านหนึ่งไปอีกด้านหนึ่งหากจำเป็น) จากนั้นคุณจะพิมพ์บรรทัดสุดท้ายด้วยการป้อนสตริงอีกครั้ง ทำมันให้เสร็จ. (โปรดทราบว่ากรณีทดสอบทั้งหมดจะสิ้นสุดที่อินพุตเริ่มต้นหลังจากที่length(input)
แถวส่วนใหญ่รวมถึงแถวที่มีอินพุตต่อท้ายซึ่งอาจเร็วกว่าที่เห็นในกรณีทดสอบครั้งแรกด้านล่างนี้ด้วยความยาว 14 แต่สิ้นสุดหลังจาก 9. )
ทั้งหมดนี้อาจคลุมเครือดังนั้นนี่เป็นตัวอย่าง:
กรณีทดสอบ 1:
สตริงอินพุต: "This_is_a_test"
อักขระอินพุต:'s'
เอาท์พุท:
This_is_a_test
s s s
ss s
s s
sss
sss
s s
ss s
s s s
This_is_a_test
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของทั้งสามs
:
โดยเส้นทางแรก's'
เดินไปตามเส้นทางสีเขียวในทิศทางตะวันออกเฉียงใต้ เส้นทางที่สอง's'
เดินตามเส้นทางสีเหลืองในทิศใต้ และเส้นทางที่สาม's'
เดินตามเส้นทางสีฟ้าอ่อนในทิศทางตะวันตกเฉียงใต้ (หากมีหนึ่งในสี่'s'
มันจะไปในทิศทางตะวันออกเฉียงใต้อีกครั้งซึ่งสามารถเห็นได้ในบางกรณีทดสอบด้านล่าง)
กฏท้าทาย:
- อินพุตจะมีเฉพาะ ASCII ที่พิมพ์ได้ (ยกเว้นช่องว่างแท็บและบรรทัดใหม่)
- รูปแบบ I / O มีความยืดหยุ่น สามารถเป็นสตริงที่คั่นด้วยบรรทัดใหม่เมทริกซ์อักขระ ฯลฯ การโทรของคุณ
- เป็นไปได้ว่าอักขระที่กำหนดไม่มีอยู่ในสตริงซึ่งในกรณีนี้คุณได้รับอนุญาตให้ส่งออกอินพุตสตริงหนึ่งหรือสองครั้ง (เช่น
"test", 'a'
สามารถมีหนึ่งในนั้นเป็นเอาต์พุตที่เป็นไปได้:"test\ntest"
/"test"
) - ช่องว่างชั้นนำเป็นข้อบังคับ; ช่องว่างต่อท้ายเป็นตัวเลือก อนุญาตให้ขึ้นบรรทัดใหม่หนึ่งหรือหลายบรรทัด
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น
กรณีทดสอบ / ตัวอย่างเพิ่มเติม:
กรณีทดสอบ 2:
สตริงอินพุต: "abcabcabcabcabc"
อักขระอินพุต:'b'
เอาท์พุท:
abcabcabcabcabc
b b b b b
bbb bb
b b
bbb bb
b b b b b
b b b b
b b b b b
bb b bb
b b b
bb bbb
b b bbb
b b b b
b bb bb
b b bb b
abcabcabcabcabc
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของห้าa
:
กรณีทดสอบ 3:
สตริงอินพุต: "only_two_paths?"
อักขระอินพุต:'o'
เอาท์พุท:
only_two_paths?
o o
o o
o o
o o
o o
oo
o
oo
o o
o o
o o
o o
o o
o o
only_two_paths?
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของทั้งสองo
:
กรณีทดสอบ 4:
สตริงอินพุต: "lollollollollol"
อักขระอินพุต:'l'
เอาท์พุท:
lollollollollol
lll ll ll
ll ll ll
l ll ll ll ll
lll l ll l ll
llllll ll ll
l l ll ll
ll lll ll
l l l lll ll l
ll l ll l l
l l l l llll l
ll lll lll
l l l ll
ll lll lllll
l l l ll l ll
lollollollollol
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของสิบl
:
กรณีทดสอบ 5:
สตริงอินพุต: "AbCdEeDcBaAbCdEeDcBa_CCCCC"
อักขระอินพุต:'C'
เอาท์พุท:
AbCdEeDcBaAbCdEeDcBa_CCCCC
C C C C C
C C C C CCC
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C C C C C
C C C CC C C
C C CC C C
C C CC C C
C C CC C
CC CC C C
CC CC C C
C C CC C C
C C CC C C C
C C C C C C
C C CC C C C
C C C C C C C
C C C C C C C
C C C C C CC
C C C C C C
C C C C CCC
C C C CCCC
C C C C
C C CCCCC
AbCdEeDcBaAbCdEeDcBa_CCCCC
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของทั้งเจ็ดC
:
กรณีทดสอบ 6:
สตริงอินพุต: "XyX"
อักขระอินพุต:'X'
เอาท์พุท:
XyX
XX
X
XyX
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของทั้งสองX
:
กรณีทดสอบ 7:
สตริงอินพุต: "aaaa"
อักขระอินพุต:'a'
เอาท์พุท:
aaaa
aa
aaa
aaa
aaaa
นี่คือกรณีทดสอบเดียวกันกับเส้นทางสีของสี่a
:
length(input)
ทุกอย่างตรงมากที่สุดอีกครั้ง แต่มันอาจเร็วกว่าที่กรณีทดสอบแรกพิสูจน์ แต่ดูเหมือนว่าคุณพูดถูกในสามส่วน (แม้ว่าฉันจะไม่แน่ใจ 100%)