บทนำ
ลองพิจารณาตัวอย่างต่อไปนี้:
CODE
+ GOLF
——————
GREAT
นี่คือสมการที่ตัวอักษรแต่ละตัวแทนตัวเลขทศนิยมและคำที่เป็นตัวแทนของตัวเลขธรรมชาติ (ตัวอักษรที่คล้ายกันแสดงถึงตัวเลขที่คล้ายกันและตัวอักษรที่แตกต่างกันแสดงตัวเลขที่แตกต่างกัน) ภารกิจคือจับคู่ตัวอักษรแต่ละตัวด้วยค่าตัวเลขเพื่อให้สมการนั้นถูกต้อง ทางออกหนึ่งสำหรับสมการข้างต้นคือ:
9265
+ 1278
——————
10543
งานของคุณ
งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่สามารถแก้สมการดังที่เห็นด้านบน
อินพุต
อินพุตเป็นสตริงในรูปแบบต่อไปนี้:
[A-Z]+\+[A-Z]+=[A-Z]+
ตัวอย่าง:
CODE+GOLF=GREAT
AA+BB=CC
เว้นช่องว่างและจะใช้เฉพาะตัวอักษรระหว่างตัวอักษร A และ Z เท่านั้น (ไม่มีตัวอักษรพิเศษหรือตัวเล็ก)
สตริงนี้สามารถอ่านได้จากอินพุตมาตรฐานจากไฟล์หรือเป็นพารามิเตอร์ฟังก์ชั่น
เอาท์พุต
คุณมีสองอ็อพชันต่อไปนี้สำหรับรูปแบบเอาต์พุต:
- สมการดั้งเดิมที่มีตัวเลขแทน
- รายการตัวอักษรและค่าของพวกเขา
หากมีวิธีแก้ไขหลายวิธีควรส่งคืน (แต่มีเพียงหนึ่งรายการเท่านั้น) หากไม่มีวิธีแก้ปัญหาโปรแกรมควรส่งคืนสตริงว่างหรือโมฆะ เอาต์พุตสามารถส่งคืนเป็นสตริงสามารถเขียนไปยังเอาต์พุตมาตรฐานหรือไฟล์
ตัวอย่าง:
9265+1278=10543
A=1 B=2 C=3
(คุณสามารถใช้ตัวคั่นใดก็ได้)
กฎระเบียบ
- เพื่อให้ง่ายขึ้นเรายอมรับตัวเลขที่เริ่มต้นด้วย 0 แต่คุณสามารถจัดการกับตัวเลขด้วยการนำ 0 เป็นวิธีแก้ปัญหาที่ไม่ถูกต้องขึ้นอยู่กับคุณ
- ตัวอักษรที่คล้ายกันแทนตัวเลขที่คล้ายกันและตัวอักษรที่แตกต่างกันแสดงถึงตัวเลขที่แตกต่างกัน
- คุณสามารถใช้ภาษาใดก็ได้และไลบรารีมาตรฐานของภาษาที่เลือก (ไม่มี libs ภายนอก)
- คุณไม่สามารถเชื่อมต่อกับแหล่งข้อมูลใด ๆ บนอินเทอร์เน็ต (ทำไมคุณถึงยังต้องการ)
- นี่คือภารกิจการเล่นกอล์ฟรหัสซึ่งเป็นรหัสที่สั้นที่สุดชนะ อักขระช่องว่างต่อเนื่องนับเป็นอักขระเดียว (ดังนั้นโปรแกรมใด ๆ ที่เขียนในช่องว่างจะชนะโดยอัตโนมัติ)
ฉันมีวิธีแฮ็คค่อนข้างใช้ 179 chars หากสิ่งที่ไม่ชัดเจนโปรดถามฉันในความคิดเห็น
If there are no solutions, the program should return an empty string or null.
ลูปไม่มีที่สิ้นสุดยังคงเอาท์พุทอะไร ... ฉันขอไหม