Programmers-変な文字を作成(Python)



質問する

  • 文字列sは、1つ以上の単語から構成される.各単語は1つ以上のスペース文字で区切られます.各単語の偶数の2番目のアルファベットは大文字で、奇数の2番目のアルファベットは小文字で置換された文字列を返す関数で、解決策を完了します.
  • せいげんじょうけん

  • 文字列全体のパリティインデックスではなく、単語(スペース単位)に基づいてパリティインデックスを決定する必要があります.
  • 最初の文字は、0番目のインデックスとして偶数文字でなければなりません.
  • I/O例


    タイトル1タイトル2「tryhelloworld」「Try HelloWorld」

    I/O例説明

  • 「tryhelloworld」は、3つの単語「try」、「hello」、「world」から構成されています.各単語の偶数の2番目の文字を大文字に、奇数の2番目の文字を小文字に、すなわち「Try」、「Hello」、「World」に変更します.そこで、「Try Hello World」に戻ります.
  • ハーモニー

    def solution(s):
        '''
        # (1)
        '''
        s = s.split(" ")
        print(s)
    
        # (2)
        check_bit = 0
    
        for word in s:
            """
            #(3)
            """
            split_word = list(word)
    
    
            for i in range(0, len(split_word)):
                if split_word[i] == " ":
                    continue
    
                # (4)
                if i % 2 == 0 :            
                    split_word[i] = word[i].upper()
    
                # (5)
                else:
                    split_word[i] = word[i].lower()
    
    
            word = "".join(split_word)
    
            s[check_bit] = word
            check_bit += 1
    
        # (6)
        s = " ".join(s)
    
        return s
    
    s = "try   hello          world"
    print(solution(s)) 
  • (1):文字列sをリストタイプに変換し、スペースで区切る
  • 注意すべき点は、s=s.split(")ではなくs=s.split()を使用することである.
    理由は以下の通り.
  • 題の入出力例では、sは「tryhelloworld」である.この場合、s=s.split()を使用して必要な値を取得できます.
  • しかし、sがs=「tryhelloworld」に等しい場合、space(スペース)は1つの単語で区切られるのではなく、複数のスペースで区切られると問題が発生します.
  • 上記のsでs=s.split()を行うと、その解法関数の戻りは「Try HelloWorldD」となる.
    s=s.split("")の場合、このソルバの戻り値は「Try HelloWorld」です.
  • すなわち,各単語の間にどれだけの空間があるかによって,結果値の中の単語の間にも同じ空間があるはずである.この点をしっかり覚えなければならない.
  • (2):check bit
  • 、リストのインデックスを指定する
  • (3):ordは文字列であるため、各単語はリストからアクセスしてスライドし、split wordに代入することができる.例えば、wordが「hello」である場合、split word=['h'、'e'、'l'、'l'、'l'、'o']にlist(word)が代入される.
  • (4):iを2で割った余りが0の場合、
  • を大文字で置換する
  • (5):iを2で割る余りが1の場合、
  • を小文字で置換する.
  • (6):リスト形式のsを文字列形式の
  • に変換する.

    📝 結果



    😃 に感銘を与える

  • 最初に解いたとき、s=s.split()のため、テストは合格しなかった.他のコードはすべて正しいです.これは一つも通過しなかったからです.これにより,split()とsplit("")の違いが分かった.今日もコードを通して学んだので楽しかったです
  • 👍 Irishのすべてのコードを表示


    -> Irish Github