매트릭스 캐릭터 보드가 있다고 가정합니다. 각 셀에 문자가 있는 위치. target이라는 문자열도 있는데 왼쪽에서 오른쪽으로 이동하거나 위쪽에서 아래쪽으로 단방향으로 이동하여 행렬에서 대상을 찾을 수 있는지 여부를 확인해야 합니다.
따라서 입력이 다음과 같으면
a | n | t | s |
s | p | 나 | n |
나 | 아 | p | s |
단어 ="팁"
그러면 출력이 True가 되고 세 번째 열(위에서 아래로)이 "tip"을 형성하는 것을 볼 수 있습니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 보드의 각 i에 대해 다음을 수행합니다.
- i :=i에 있는 문자로 단어 만들기
- i에 단어가 있으면
- 참 반환
- i :=0
- 내가 <보드의 행 수인 동안
- j :=보드의 i번째 열의 문자로 문자열 만들기
- 나는 :=나는 + 1
- 단어가 j에 있으면
- 참 반환
- 거짓을 반환
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(board, word): for i in board: i = "".join(i) if word in i: return True i = 0 while i < len(board): j = "".join([col[i] for col in board]) i += 1 if word in j: return True return False board = [["a","n","t","s"],["s","p","i","n"],["l","a","p","s"]] word = "tip" print(solve(board, word))
입력
[["a","n","t","s"], ["s","p","i","n"], ["l","a","p","s"]], "tip"
출력
True