একটি অ্যালফামেটিক্স ধাঁধা দেওয়া থাকলে সঠিক সমাধানটি খুঁজে বের করুন।
অ্যালফামেটিক্স হলো এমন একটি ধাঁধা, যেখানে শব্দের অক্ষরগুলোর জায়গায় সংখ্যা বসানো হয়।
যেমন 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 ফাংশন, 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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।