Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの逆文字列II


文字列と整数kがあるとすると、文字列の先頭から数えて2k文字ごとに最初のk文字を逆にする必要があります。十分な文字が残っていない場合は、すべてを逆にします。 2k文字未満でk文字以上の場合は、最初のk文字を逆にして、他の文字を元の文字のままにします。

したがって、入力が「abcdefgh」のようで、k =3の場合、出力は「cbadefhg」になります

これを解決するには、次の手順に従います-

  • l:=sの文字のリストを作成する

  • i:=k-1

  • 一方、i

    • a:=l[インデックス0からi-k+1まで]

    • b:=l[インデックスi-k+1からi+1へ]

    • c:=l[インデックスi+1から終了まで]

    • l:=連結b[インデックス0から終了まで]連結c

    • i:=i + 2 * k

  • l

    の各文字を連結して文字列を返します

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def reverseStr(self, s, k):
      l = list(s)
      i = k-1
      while i < len(l)+k:
         a = l[:i-k+1]
         b = l[i-k+1:i+1]
         c = l[i+1:]
         l = a + b[::-1] + c
         i += 2*k
      return ''.join(l)

ob = Solution()
print(ob.reverseStr("abcdefg", 3))

入力

"abcdefg", 3

出力

cbadefg

  1. Pythonで特定の文字列の単語を逆にする

    文字列が与えられ、文字列に存在するすべての単語を逆にすることが目標です。分割法と逆関数を使用して出力を実現できます。いくつかのサンプルテストケースを見てみましょう。 Input: string = "I am a python programmer" Output: programmer python a am I Input: string = "tutorialspoint is a educational website" Output: website educational a is tutorialspoint 以下の手順に従って、目

  2. Pythonのcasefold()文字列

    この関数は、単語の文字を小文字に変換するのに役立ちます。 2つの文字列に適用すると、文字の大文字小文字の種類に関係なく、それらの値と一致する可能性があります。 casefold()の適用 以下の例では、casefold()関数を文字列に適用すると、結果はすべて小文字で出力されます。 例 string = "BestTutorials" # print lowercase string print(" lowercase string: ", string.casefold()) 出力 上記のコードを実行すると、次の結果が得られます- Lowerca