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

Pythonでのダブル、リバース、スワップ後のパターン


数値nがあるとすると、シーケンスからn番目の値を見つけることができません。シーケンスは以下のようになります-

  • xxy
  • xxyxxy
  • yxxyxx
  • xyyxyy
  • xyyxyyxyyxyy
  • ...

次の値を生成するには、最初の項としてxxyから始めて、これらのルールに従う必要があります-

  • パターンの先頭に来たら、パターンを2倍にします(文字列をそれ自体と連結します)。

  • 最後の操作が2倍になったとき、それを逆にします。

  • 最後の操作が逆になったら、すべてのxをysと交換し、その逆も同様です。

  • これらの手順を繰り返します。

したがって、入力がn =5の場合、出力は「yyxyyxyyxyyx」になります

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

  • i:=0
  • ret:="xxy"
  • i
  • i mod 3が0と同じ場合、
    • ret:=ret + ret
  • それ以外の場合、i mod 3が1と同じ場合、
    • ret:=インデックス0からend-1までのretのサブ配列
  • それ以外の場合、
    • new_stringy:=空白の文字列
    • retの各cについて、
      • cが"x"と同じ場合、
        • new_stringy:=new_stringy concatenate "y"
      • それ以外の場合、
        • new_stringy:=new_stringy concatenate "x"
    • ret:=new_stringy
  • i:=i + 1
  • return ret
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution:
       def solve(self, s):
          i = 0
          ret = "xxy"
          while i < s:
             if i % 3 == 0:
                ret += ret
             elif i % 3 == 1:
                ret = ret[::-1]
             else:
                new_stringy = ""
                for c in ret:
                   if c == "x":
                      new_stringy += "y"
                   else:
                      new_stringy += "x"
                   ret = new_stringy
                i += 1
          return ret
    ob = Solution()
    print(ob.solve(5))

    入力

    5

    出力

    yyxyyxyyxyyx

    1. Pythonでパターンを印刷する方法は?

      Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

    2. Pythonで文字列を逆にする

      文字の配列があるとします。追加のスペースを使用せずに文字列を反転する必要があります。したがって、文字列が[H、E、L、L、O]のような場合、出力は[O、L、L、E、 H] これを解決するには、次の手順に従います- 2つのポインタを使用して、開始=0および終了=文字列の長さ– 1 最初と最後の文字を入れ替える 開始を1増やし、終了を1減らします 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def reverseString(self, s):       "&q