Giới thiệu
Hãy xem xét ví dụ sau:
CODE
+ GOLF
——————
GREAT
Đây là một phương trình trong đó mỗi chữ cái đại diện cho một chữ số thập phân và các từ đại diện cho số tự nhiên (các chữ cái tương tự đại diện cho các chữ số tương tự và các chữ cái khác nhau đại diện cho các chữ số khác nhau). Nhiệm vụ là khớp từng chữ cái với giá trị chữ số của nó sao cho phương trình đúng. Một giải pháp cho phương trình trên là:
9265
+ 1278
——————
10543
Nhiệm vụ của bạn
Nhiệm vụ của bạn là viết một chương trình hoặc một hàm có thể giải các phương trình như đã thấy ở trên.
Đầu vào
Đầu vào là một chuỗi theo định dạng sau:
[A-Z]+\+[A-Z]+=[A-Z]+
Thí dụ:
CODE+GOLF=GREAT
AA+BB=CC
Dấu cách được bỏ qua và chỉ các chữ cái giữa chữ A và Z sẽ được sử dụng (không có chữ cái đặc biệt hoặc nhỏ).
Chuỗi này có thể được đọc từ đầu vào tiêu chuẩn, từ một tệp hoặc dưới dạng tham số chức năng.
Đầu ra
Bạn có hai tùy chọn sau cho định dạng đầu ra:
- phương trình ban đầu với các chữ số thay thế
- danh sách các chữ cái và giá trị của chúng
Nếu có nhiều giải pháp, bất kỳ (nhưng chỉ một) trong số chúng phải được trả lại. Nếu không có giải pháp, chương trình sẽ trả về một chuỗi rỗng hoặc null. Đầu ra có thể được trả về dưới dạng một chuỗi, có thể được ghi vào đầu ra tiêu chuẩn hoặc một tệp.
Thí dụ:
9265+1278=10543
A=1 B=2 C=3
(bạn có thể sử dụng bất kỳ dấu phân cách nào)
Quy tắc
- Để làm cho mọi việc dễ dàng hơn, các số được chấp nhận bắt đầu bằng 0, nhưng bạn có thể xử lý các số có số 0 là giải pháp không hợp lệ, tùy thuộc vào bạn
- Các chữ cái tương tự đại diện cho các chữ số tương tự và các chữ cái khác nhau đại diện cho các chữ số khác nhau
- Bạn có thể sử dụng bất kỳ ngôn ngữ và thư viện chuẩn của ngôn ngữ đã chọn (không có lib bên ngoài)
- Bạn không thể kết nối với bất kỳ tài nguyên nào trên internet (tại sao bạn lại biết?)
- Đây là một nhiệm vụ golf mã, mã ngắn nhất thắng. Các ký tự khoảng trắng liên tiếp được tính là một ký tự đơn. (Vì vậy, bất kỳ chương trình nào được viết trong khoảng trắng sẽ tự động thắng)
Tôi có một giải pháp hơi hackish bằng cách sử dụng 179 ký tự. Nếu một cái gì đó không rõ ràng, xin vui lòng hỏi tôi trong các ý kiến.
If there are no solutions, the program should return an empty string or null.
Vòng lặp vô hạn vẫn không có kết quả gì ... tôi có thể?