งานของคุณคือการรวบรวม regexes ... โดยการระบุการทดแทนสำหรับแต่ละตัวละครใน regex
regexes
regexes สนับสนุนสิ่งเหล่านี้
REGEX = (LITERAL REGEX / GROUP REGEX / STAR REGEX / ALTERNATIVE)
LITERAL = 1 / 0
GROUP = '(' REGEX ')'
STAR = (LITERAL / GROUP) '*'
ALTERNATIVE = '('REGEX ('|' REGEX)*')'
ทำไมเพียง 1 หรือ 0 มันเป็นเรื่องง่าย regex มีตัวอักษรต่อไปนี้เท่านั้น:
*()|10
มันถูกตีความดังนี้:
*
คือ Kleene star (ทำซ้ำกลุ่มซ้ายหรือตัวอักษร 0 หรือมากกว่านั้น)|
เป็นทางเลือก (จับคู่หาก regex ไปทางซ้ายหรือ regex ไปทางขวา)()
กำลังจัดกลุ่ม1
ตรงกับตัวละคร 10
ตรงกับตัวละคร 0
วิธีการรวบรวม
คุณระบุข้อมูลโค้ดหกชุด: หนึ่งชุดเพื่อแทนที่อักขระ regex แต่ละตัว ตัวอย่างเช่นหากคำตอบของคุณคือ:
*
:FSAGFSDVADFS
|
:GSDGSAG
(
:GSDG
)
:GDSIH
1
:RGIHAIGH
0
:GIHEBN
จากนั้นคุณแทนที่แต่ละ regex ด้วยข้อมูลโค้ดดังนั้น:
(0|11)*
เปลี่ยนเป็น:
GSDGGIHEBNGSDGSAGRGIHAIGHRGIHAIGHGDSIHFSAGFSDVADFS
โปรแกรมผลลัพธ์ควรทำอย่างไร
โปรแกรมของคุณจะ:
- รับอินพุต
- ส่งออกค่าความจริงถ้า regex ตรงกับการป้อนข้อมูลทั้งหมด
- เอาท์พุทเป็นค่าเท็จ
อินพุตภายนอก01
ถูกพิจารณาพฤติกรรมที่ไม่ได้กำหนด ข้อมูลที่ป้อนว่างเปล่า
กฎเพิ่มเติม
- สำหรับอักขระ regex ที่กำหนดตัวอย่างข้อมูลที่ได้จะต้องเหมือนกันเสมอ
- ไม่มีตัวอักษรนำหน้าหรือคำต่อท้ายเพิ่มหลังจากนั้น
- regex รับประกันว่าจะไม่มีข้อยกเว้น
เกณฑ์การให้คะแนน
ตัวอย่างข้อมูลที่รวมกันน้อยที่สุดคือผู้ชนะ ดังนั้นคะแนนสำหรับกรณีตัวอย่างจะถูกคำนวณดังนี้:
FSAGFSDVADFS
+ GSDGSAG
+ GSDG
+ GDSIH
+ RGIHAIGH
+GIHEBN
12 + 7 + 4 + 5 + 8 + 6 = 42