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

문자열이 Python에서 주어진 이름의 입력된 이름인지 확인

<시간/>

두 개의 소문자 문자열 s와 t가 있다고 가정합니다. 때로는 모음을 입력할 때 키가 길게 눌러져 모음이 1회 이상 반복되는 경우가 있습니다. s를 나타내는 t가 입력될 수 있는지 여부를 확인해야 합니다.

따라서 입력이 s ="mine" t ="miiine"과 같으면 모음 'i'가 세 번 반복되므로 출력은 True가 되고 다른 문자는 괜찮습니다.

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

  • s_len :=s의 크기
  • t_len :=t의 크기
  • j :=0
  • 0 ~ s_len - 1 범위의 i에 대해
    • s[i]가 t[j]와 같지 않으면
      • 거짓을 반환
    • s[i]가 모음이 아니면
      • j :=j + 1
      • 다음 반복으로 이동
    • cnt_1 :=1
    • i
    • cnt_1 :=cnt_1 + 1
    • 나는 :=나는 + 1
  • cnt_2 :=1
  • j
  • cnt_2 :=cnt_2 + 1
  • j :=j + 1
  • cnt_1> cnt_2이면
    • 거짓을 반환
  • 참 반환
  • 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    def isVowel(c):
       vowel = "aeiou"
       return c in vowel
    def solve(s, t):
       s_len = len(s)
       t_len = len(t)
       j = 0
       for i in range(s_len):
          if s[i] != t[j]:
             return False
          if isVowel(s[i]) == False:
             j = j + 1
             continue
          cnt_1 = 1
          while i < s_len - 1 and (s[i] == s[i + 1]):
             cnt_1 = cnt_1 + 1
             i = i + 1
          cnt_2 = 1
          while j < t_len - 1 and t[j] == s[i]:
             cnt_2 = cnt_2 + 1
             j = j + 1
          if cnt_1 > cnt_2:
             return False
       return True
    s = "mine"
    t = "miiine"
    print(solve(s, t))

    입력

    "mine", "miiine"

    출력

    True