길이가 2인 문자열 s가 있고 모든 단어의 길이가 2인 단어 w의 목록이 있다고 가정합니다. w에서 단어를 연결할 수 있고 연결된 문자열에 s가 하위 문자열로 포함되어 있는지 확인해야 합니다.피>
따라서 입력이 s ="no", w =["ol", "on", "ni", "to"]와 같으면 출력은 "onol"과 같은 문자열을 연결할 수 있으므로 True가 됩니다. "아니오" 포함
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- n :=w의 단어 수
- char_0 :=거짓, char_1 :=거짓
- 0 ~ n - 1 범위의 i에 대해
- w[i]가 s와 같으면
- 참 반환
- s[0]이 w[i, 1]과 같으면
- char_0 :=참
- s[1]이 w[i, 0]과 같으면
- char_1 :=참
- char_0과 char_1이 모두 true이면
- 참 반환
- w[i]가 s와 같으면
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def solve(s, w): n = len(w) char_0 = False char_1 = False for i in range(n): if w[i] == s: return True if s[0] == w[i][1]: char_0 = True if s[1] == w[i][0]: char_1 = True if char_0 and char_1: return True return False s = "no" w = ["ol", "on", "ni", "to"] print(solve(s, w))
입력
"no", ["ol", "on", "ni", "to"]
출력
True