एक अल्फामेटिक्स पहेली दी गई है। इसका सही हल ढूँढ़िए।
अल्फामेटिक्स एक ऐसी पहेली है जिसमें शब्दों के अक्षरों को संख्याओं से बदल दिया जाता है।
उदाहरण के लिए SEND + MORE = MONEY:
S E N D
M O R E +
-----------
M O N E Y
इन अक्षरों को सही संख्याओं से बदलने पर यह मिलता है:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
यह इसलिए सही है क्योंकि हर अक्षर को एक अलग संख्या से बदला गया है, और इन शब्दों को संख्याओं में बदलने पर एक सही जोड़ बनता है।
हर अक्षर को एक अलग अंक दर्शाना चाहिए, और कई अंकों वाली संख्या का पहला अंक शून्य नहीं होना चाहिए।
एक ही Go func बनाइए, जिसका नाम Solve है। यह एक पज़ल स्ट्रिंग लेता है, जिसमें शून्य या उससे अधिक + ऑपरेटर और एक == ऑपरेटर हो सकते हैं। Solve को एल्फामेटिक्स पज़ल को हल करने की कोशिश करनी चाहिए और पज़ल तथा जोड़ के हल, दोनों के लिए अक्षरों के सभी प्रतिस्थापनों का मैप लौटाना चाहिए।
func Solve के लिए यह सिग्नेचर इस्तेमाल कीजिए:
func Solve(puzzle string) (map[string]int, error) {
अगर दिए गए पज़ल का कोई हल नहीं है, तो Solve को एक एरर लौटानी चाहिए।
एक उदाहरण पज़ल और उसके लिए लौटाया गया हल यह है:
Solve("SEND + MORE == MONEY")
तो यह लौटाएगा:
map[string]int{"M":1, "O":0, "N":6, "E":5, "Y":2, "S":9, "D":7, "R":8}, nil
S E N D
M O R E +
-----------
M O N E Y
इन अक्षरों की जगह मान्य संख्याएँ रखने पर यह मिलता है:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।