ท้าทาย
สำหรับความท้าทายนี้สตริงที่เป็นภูเขาเป็นสิ่งที่สอดคล้องกับกฎไวยากรณ์M: x(Mx)*
ที่ทุกการผลิต x ทั้งหมดเป็นอักขระเดียวกัน เมื่อเยื้องสายภูเขาอาจมีลักษณะเช่นนี้:
A
B
C
D
C
E
F
E
C
B
A
อย่างที่คุณเห็นมันดูเหมือนภูเขาจากทางด้านข้าง
นิยามอย่างเป็นทางการ
- อักขระเดี่ยวใด ๆ ที่
a
เป็นภูเขา - ถ้า
S
เป็นสตริงภูเขาและa
เป็นอักขระแล้วก็aSa
เป็นภูเขาซึ่งการวางเคียงกันแสดงถึงการต่อสตริง - ถ้า
aSa
และaTa
เป็นสายภูเขาก็aSaTa
เป็นสายภูเขา โปรดทราบว่ากฎนี้มีความหมายว่ารูปแบบนี้มีไว้สำหรับการทำซ้ำจำนวนเท่าใดก็ได้ (เช่นaSaTaUa
,aSaTaUaVa
,aSaTaUaVaWa
... มีทั้งหมดภูเขา.)
ตัวอย่าง
palindromes ความยาวคี่ทั้งหมดเป็นภูเขาตัวอย่างเช่น:
t
a
c
o
c
a
t
qwertytrasdfdgdsarewqjklkjq
เป็นตัวอย่างเล็กน้อย:
q
w
e
r
t
y
t
r
a
s
d
f
d
g
d
s
a
r
e
w
q
j
k
l
k
j
q
ตัวอย่างผลลัพธ์
a ==> true
aaa ==> true
mom ==> true
tacocat ==> true
qwertytrasdfdgdsarewqjklkjq ==> true
wasitacaroraratisaw ==> true
abcbcbcbcba ==> true
aaaaabcbbba ==> true
<empty string> ==> false
aa ==> false
pie ==> false
toohottohoot ==> false
asdfdghgfdsa ==> false
myhovercraftisfullofeels ==> false
กฎระเบียบ
- นี่เป็นปัญหาในการตัดสินใจดังนั้นการแสดงความจริงหรือเท็จใด ๆ จะเป็นผลลัพธ์ที่ถูกต้องตราบใดที่มันถูกต้องสอดคล้องกันไม่คลุมเครือและโปรแกรมจะยุติในเวลาที่ จำกัด ตรวจสอบให้แน่ใจว่าได้ระบุข้อตกลงการส่งออกด้วยโซลูชันของคุณ
- มันควรจะเป็นเรื่องเล็กน้อยที่จะตัดสินว่าเอาต์พุตบ่งชี้ว่าจริงหรือเท็จโดยไม่ต้องรู้ว่าสตริงนั้นคืออะไร โปรดทราบว่าสิ่งนี้ไม่ได้หมายความว่าผลลัพธ์ที่เป็นจริงหรือเป็นเท็จต้องมีค่าคงที่อย่างไรก็ตามการประชุมของ "พิมพ์สตริงภูเขาหากสตริงนั้นเป็นภูเขาและไม่ใช่ภูเขาหากไม่ใช่ภูเขา" เป็นช่องโหว่ที่ต้องห้ามด้วยเหตุผลที่ชัดเจน
- ในทางตรงกันข้ามการประชุมเช่น "โยนข้อยกเว้นสำหรับความผิดพลาดและออกไปอย่างเงียบ ๆ เพื่อความเป็นจริง" จะดีเช่นเดียวกับ "พิมพ์อักขระเดียวสำหรับความจริงและสิ่งอื่นใดที่เป็นเท็จ"
- นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดชนะ
- ช่องโหว่มาตรฐานถูกแบน
wasitacaroraratisaw
? ดูเหมือนว่าเป็นเรื่องน่าขันสำหรับฉัน
wasitacaroraratisaw
AFAICT เป็นภูเขาแน่นอน
aaa
ทำให้มันไม่ทำงาน
aaa
จะดีโดยที่ต้องใช้อักขระเดียวกันในหลายระดับ