Định vị số phòng
Tôi đã bắt gặp một kỹ thuật giải quyết vấn đề thú vị trong công việc của mình khi đưa nhầm số phòng từ một đồng nghiệp cho một cuộc họp. Thỉnh thoảng, trên đường đến một cuộc họp, một thành viên trong nhóm của tôi sẽ gửi cho tôi số phòng sai, điển hình là vì họ đang vội vàng ở bàn làm việc và ngón tay sai chìa khóa.
Thật thú vị, khi đến nhầm phòng, tôi thường có thể đoán được họ thực sự có ý nghĩa gì khi tưởng tượng Bàn phím số :
![]()
và bằng cách đoán một số liền kề họ có nghĩa là nhấn.
Thử thách
Thách thức của bạn là viết một hàm lấy số văn phòng tòa nhà (000-999) và đưa ra các giải pháp lỗi chính tả có thể, giả sử đồng nghiệp của bạn chỉ nhập sai một chữ số.
Bảng sau đây cho biết các số nào liền kề nhau trên Bàn phím số:
0 -> 1,2
1 -> 0,2,4
2 -> 0,1,3,5
3 -> 2,6
4 -> 1,5,7
5 -> 2,4,6,8
6 -> 3,5,9
7 -> 4,8
8 -> 5,7,9
9 -> 6,8
Đầu vào
Một số có 3 chữ số : 000-999. Giả sử đầu vào đúng 3 chữ số. Nếu số lượng nhỏ hơn 100 hoặc dưới 10, bạn sẽ được cung cấp các số 0 đứng đầu. (tức là 004 & 028).
Đầu ra
Một danh sách các phòng có thể. Điều này có thể ở bất kỳ hình thức nào bạn muốn, miễn là có một dấu phân cách giữa các số phòng. (ví dụ: dấu cách, dấu phẩy, dòng mới, v.v.) Nếu số nhỏ hơn 100 hoặc nhỏ hơn 10, bạn có thể hoặc không thể có các số 0 đứng đầu làm đầu ra, điều đó tùy thuộc vào bạn. (tức là 004 có thể 004 04 4và 028 có thể 028 28)
Các trường hợp thử nghiệm (các số 0 đứng đầu là tùy chọn):
008 -> 108, 208, 018, 028, 005, 007, 009
123 -> 023, 223, 423, 103, 113, 133, 153, 122, 126
585 -> 285, 485, 685, 885, 555, 575, 595, 582, 584, 586, 588
777 -> 477, 877, 747, 787, 774, 778
963 -> 663, 863, 933, 953, 993, 962, 966
555 -> 255, 455, 655, 855, 525, 545, 565, 585, 552, 554, 556, 558
Đây là mã golf , vì vậy mã ngắn nhất tính theo byte cho mỗi ngôn ngữ sẽ thắng.
933sửa chữa.
