Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 주어진 단어를 사용하여 두 문자 문자열을 만들 수 있는지 확인

<시간/>

길이가 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이면
      • 참 반환
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

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