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

입력 된 문자열을 확인하는 프로그램은 Python이 아닌 멈춘 키보드 키에 대상 문자열을 쓰는 것입니다.

<시간/>

두 개의 문자열 s와 t가 있다고 가정합니다. 우리는 t를 형성하고 싶지만, 키보드에 몇몇 문자가 붙어서 1번 이상 쓸 수 있는 문제가 있습니다. 입력한 s가 t를 쓰기 위한 것인지 아닌지 확인해야 합니다.

따라서 입력이 s ="apppplee" t ="apple"과 같으면 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • i :=0, j :=0
  • s_len :=s의 크기
  • t_len :=t의 크기
  • t_last :=빈 문자열
  • j
  • i가 s_len과 같으면
    • 거짓을 반환
  • s[i]가 t[j]와 같으면
    • t_last :=t[j]
    • 나는 :=나는 + 1
    • j :=j + 1
  • 그렇지 않으면 s[i]가 t_last와 같을 때
    • 나는 :=나는 + 1
  • 그렇지 않으면
    • 거짓을 반환
  • i
  • s[인덱스 i부터 끝까지]의 모든 문자가 t_last와 같으면 true를 반환합니다.
  • 그렇지 않으면
    • 참 반환
  • 예시

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

    def solve(s, t):
       i = j = 0
       s_len = len(s)
       t_len = len(t)
       t_last = ""
       while j < t_len:
          if i == s_len:
             return False
          if s[i] == t[j]:
             t_last = t[j]
             i += 1
             j += 1
          elif s[i] == t_last:
             i += 1
          else:
             return False
       if i < s_len:
          return all(char == t_last for char in s[i:])
       else:
          return True
    
    s = "appppleee"
    t = "apple"
    print(solve(s, t))

    입력

    "appppleee", "apple"
    

    출력

    True