Cho 3 mục đầu vào, danh sách các cặp tọa độ, chuỗi 2D và chuỗi ký tự đơn, xuất ra liệu ký tự ở mỗi tọa độ của chuỗi 2D có bằng ký tự đơn hay không. Bạn có thể lấy đầu vào theo bất kỳ thứ tự nào và tọa độ có thể được lập chỉ mục 1.
Bạn có thể lấy chuỗi 2D làm danh sách 2D, danh sách các dòng hoặc chuỗi 2D.
Thí dụ: (0,0), "#_\n__", "#" -> True
Chuỗi là
#_
__
Các char ở tọa độ (0,0)
(từ trên cùng bên trái) là #
. Điều này bằng với mục đầu vào thứ ba #
, vì vậy bạn xuất ra True
(hoặc bất kỳ giá trị trung thực nào)
Thí dụ: [(0,0), (1,1)], "#_\n_#", "#" -> True
Chuỗi là
#_
_#
Các ký tự tại tọa độ của (0,0)
và (1,1)
là cả hai #
, vì vậy đầu ra là đúng.
Đầu ra chỉ đúng nếu mỗi tọa độ khớp với hàm băm. Không phải mọi băm đều phải có tọa độ khớp. Nếu không có sự xuất hiện của char đơn ( #
trong một số trường hợp thử nghiệm) trong chuỗi 2D, thì đầu ra vẫn chỉ là giả.
Bạn có thể giả sử tọa độ sẽ luôn nằm trong giới hạn của chuỗi 2D.
Thêm trường hợp kiểm tra: (Tôi đặt char thứ hai để dễ đọc)
[(0,0), (2,1), (3,0)], #
#_##
#_##
True
[(0,0), (1,1), (3,0)], #
#_##
#_##
False (1,1 is not a hash)
[(1,1)], a
#a##
#a##
True
[(4, 0), (3, 0), (2, 0), (1, 0), (0, 0), (0, 1), (0, 2), (0, 3), (1, 3), (2, 3), (2, 2), (3, 2), (4, 2), (4, 3)], ' '
####
#
#
True
Lưu ý trường hợp thử nghiệm cuối cùng sử dụng khoảng trắng làm chuỗi char đơn và băm xung quanh khoảng trắng.
Liên quan. (nghịch đảo của thử thách này)
(row, column)
nhưng trong ví dụ cuối tọa độ có định dạng (column, row)
.