염소 라틴어

2048 단어 theabbieleetcodedsa
공백으로 구분된 단어로 구성된 문자열sentence이 제공됩니다. 각 단어는 소문자와 대문자로만 구성됩니다.

문장을 "염소 라틴어"(Pig 라틴어와 유사한 구성 언어)로 변환하고 싶습니다. 염소 라틴어의 규칙은 다음과 같습니다.
  • 단어가 모음( 'a' , 'e' , 'i' , 'o' 또는 'u' )으로 시작하는 경우 단어 끝에 "ma"를 추가합니다.
  • 예를 들어 "apple"라는 단어는 "applema"가 됩니다.

  • 단어가 자음(즉, 모음이 아님)으로 시작하는 경우 첫 글자를 제거하고 끝에 추가한 다음 "ma" 를 추가합니다.
  • 예를 들어 "goat"라는 단어는 "oatgma"가 됩니다.

  • 'a' 로 시작하는 문장의 단어 인덱스마다 각 단어의 끝에 하나의 문자1를 추가합니다.
  • 예를 들어 첫 번째 단어는 끝에 "a"가 추가되고 두 ​​번째 단어는 끝에 "aa"가 추가되는 식입니다.


  • 문장에서 Goat Latin으로의 변환을 나타내는 마지막 문장을 반환합니다.

    예 1:

    입력: 문장 = "나는 염소 라틴어를 사용합니다"
    출력: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"

    예 2:

    입력: 문장 = "날쌘 갈색 여우가 게으른 개를 뛰어 넘었습니다"
    출력: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"

    제약:
  • 1 <= sentence.length <= 150
  • sentence는 영문자와 공백으로 구성됩니다.
  • sentence에는 선행 또는 후행 공백이 없습니다.
  • sentence의 모든 단어는 하나의 공백으로 구분됩니다.

  • 해결책:

    class Solution:
        def transform(self, word, i):
            vowels = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' }
            op = ""
            if word[0] in vowels:
                op += word + "ma"
            else:
                op += word[1:] + word[0] + "ma"
            op += "a" * i
            return op
    
        def toGoatLatin(self, sentence: str) -> str:
            words = sentence.split()
            return " ".join([self.transform(word, i+1) for i, word in enumerate(words)])
    

    좋은 웹페이지 즐겨찾기