문장에서 숫자가 오름차순인지 확인

2273 단어 leetcodetheabbiedsa
문장은 선행 또는 후행 공백 없이 단일 공백으로 구분된 토큰 목록입니다. 모든 토큰은 앞에 0이 없는 숫자0-9로 구성된 양수이거나 영어 소문자로 구성된 단어입니다.
  • 예를 들어 "a puppy has 2 eyes 4 legs"는 7개의 토큰이 있는 문장입니다. "2""4"는 숫자이고 "puppy"와 같은 다른 토큰은 단어입니다.

  • 문장을 나타내는 문자열s이 주어지면 s의 모든 숫자가 왼쪽에서 오른쪽으로 엄격하게 증가하는지(즉, 마지막 숫자를 제외하고 각 숫자가 오른쪽에 있는 숫자보다 엄격하게 작은지 확인해야 합니다. s ).

    그렇다면 true를 반환하고 그렇지 않으면 false를 반환합니다.

    예 1:



    입력: s = "1개의 상자에 파란색 3개, 빨간색 4개, 녹색 6개 및 노란색 구슬 12개가 있습니다."
    출력: 참
    설명: s의 숫자는 1, 3, 4, 6, 12입니다.
    왼쪽에서 오른쪽으로 엄격하게 증가합니다: 1 < 3 < 4 < 6 < 12.

    예 2:

    입력: s = "안녕하세요 세계 5 x 5"
    출력: 거짓
    설명: s의 숫자는 5, 5입니다. 엄격하게 증가하지 않습니다.

    예 3:



    입력: s = "일몰은 오후 7시 51분입니다. 최저점은 최저 50초와 60초에 있을 것입니다."
    출력: 거짓
    설명: s의 숫자는 7, 51, 50, 60입니다. 엄격하게 증가하지 않습니다.

    제약:
  • 3 <= s.length <= 200
  • s0에서 9까지의 영문 소문자, 공백 및 숫자로 구성됩니다.
  • s의 토큰 수는 2에서 100 사이입니다.
  • s의 토큰은 단일 공백으로 구분됩니다.
  • s 에는 적어도 두 개의 숫자가 있습니다.
  • s의 각 숫자는 선행 0이 없는 100보다 작은 양수입니다.
  • s에는 선행 또는 후행 공백이 없습니다.

  • 해결책:

    class Solution:
        def areNumbersAscending(self, s: str) -> bool:
            s += " "
            token = ""
            curr = None
            for c in s:
                if c == " ":
                    if token.isdigit():
                        if curr:
                            if int(token) <= curr:
                                return False
                        curr = int(token)
                    token = ""
                else:
                    token += c
            return True
    

    좋은 웹페이지 즐겨찾기