Hầu hết các số vuông có ít nhất 1 số vuông khác nhau với khoảng cách Levenshtein của chúng là chính xác 1. Với một hình vuông cho trước , mỗi hình vuông đáp ứng điều kiện này được gọi là hàng xóm Levenshtein của . Ví dụ: là hàng xóm của Levenshtein là , vì chỉ cần 1 chỉnh sửa ( ). Tuy nhiên, không phải là hàng xóm của Levenshtein là , vì nó yêu cầu tối thiểu 2 lần chỉnh sửa. Các số có số 0 đứng đầu ( ) không phải là hàng xóm của Levenshtein.
Nhiệm vụ của bạn là lấy một số vuông làm đầu vào và đầu ra, ở bất kỳ định dạng hợp lý nào, danh sách đầy đủ của hàng xóm Levenshtein. Bạn có thể bao gồm hàng xóm lặp lại trong danh sách, nếu bạn muốn, nhưng bạn có thể không bao gồm đầu vào ban đầu, vì đó không phải là hàng xóm của Levenshtein.
Bất kỳ định dạng hợp lý nào cũng phải bao gồm một số loại dấu tách giữa các đầu ra, chẳng hạn như ,
hoặc một dòng mới và có thể xuất các ký tự có giá trị Unicode tương ứng (ví dụ: brainfuck) thay vì chính các số. Thứ tự của đầu ra không quan trọng.
Đầu vào này sẽ luôn là một số vuông, lớn hơn . Chương trình của bạn không nên có giới hạn lý thuyết , nhưng nếu nó không thành công với số lượng lớn vì lý do thực tế (ví dụ: ngoài số 32 bit), điều đó hoàn toàn tốt.
Nếu đầu vào không có bất kỳ lân cận Levenshtein nào, đầu ra phải phản ánh rõ ràng điều này, chẳng hạn như không xuất ra gì, một mảng / chuỗi trống, một số nguyên âm, , v.v.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng.
Các trường hợp thử nghiệm
Đây là kết quả cho các ô vuông từ đến :
1: 4, 9, 16, 81
4: 1, 9, 49, 64
9: 1, 4, 49
16: 1, 36, 169, 196
25: 225, 256, 625
36: 16, 361
49: 4, 9
64: 4
81: 1, 841
100: 400, 900, 1600, 8100
121: 1521
144: 1444
169: 16, 1369
196: 16, 1296, 1936
225: 25, 625, 1225, 2025, 4225, 7225
256: 25
289: 2809
324: 3249
361: 36, 961
400: 100, 900, 4900, 6400
Ngoài ra, 1024
không có bất kỳ hàng xóm, vì vậy là một trường hợp thử nghiệm tốt.
32 * 32 = 1024
không có hàng xóm Levenshtein vuông.
1024
không có bất kỳ người hàng xóm Levenshtein nào, tôi sẽ chỉnh sửa ví dụ đó trong
2025
.