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

Pythonで数えて言う


ここでは、カウントと発言のシーケンスが表示されます。これは、いくつかの用語が以下のようなシーケンスです-

  • 1
  • 11
  • 21
  • 1211
  • 111221

文字列は次のように読み取られます

  • 1(1)
  • 11(One 1)前の1を読んで、「One1」と言います
  • 21(Two 1)前の11を読んで、「Two1」と言ってください
  • 1211(One 2 one 1)前の21を読んで、「One 2one1」と言います
  • 111221(One 1 1 2 2 2 1)前の1211を読んで、「One 1 1 221」と言います

数n、1 <=n <=30があるとすると、n番目の項を生成する必要があります。

これを解決するために、このアプローチに従います-

  • set s:=“ 1”
  • n =1の場合、sを返します
  • for i:=2からn+ 1
    • j:=0、temp:=“”、curr =“”およびcount:=0
    • j
    • currが「」の場合、curr:=s [j]、カウント:=1、jを1増やします
    • それ以外の場合、currがs [j]の場合は、カウントとjを1増やします
    • それ以外の場合、temp:=temp+文字列としてカウント+curr、curr =“”、count:=0
  • temp:=temp+文字列としてカウント+curr
  • return s
  • 理解を深めるために、次の実装を見てみましょう-

    class Solution(object):
       def countAndSay(self, n):
          """
          :type n: int
          :rtype: str
          """
          s = "1"
          if n == 1:
             return s
          for i in range(2,n+1):
             j = 0
             temp = ""
             curr = ""
             count = 0
             while j<len(s):
                #print(curr,count)
                if curr =="":
                   #print(curr)
                   curr=s[j]
                   count=1
                   j+=1
                elif curr == s[j]:
                   #print(curr)
                   count+=1
                   j+=1
                else:
                   #print(count,curr)
                   temp+= str(count) + curr
                   curr=""
                   count = 0
                   #print(temp)
             temp+=str(count) + curr
             s=temp
          return s
    ob1 = Solution()
    print(ob1.countAndSay(6))

    入力

    print(ob1.countAndSay(6))

    出力

    312211

    1. Pythonでのfcntlおよびioctlシステムコール

      ファイルとioを制御するには、 fcntlを使用する必要があります モジュール。これは基本的に、fcntl()およびioctl()Unixルーチンへの1つのインターフェースです。 このモジュールのすべてのメソッドは、最初の引数として1つの整数またはio.IOBaseファイル記述子を取ります。 このモジュールを使用するには、を使用してインポートする必要があります。 import fcntl fcntlモジュールにはいくつかのモジュールがあります。これらは-です。 メソッドfcntl.fcntl(fd、op [、arg]) このメソッドは、ファイル記述子を使用してファイルに対して操作を

    2. =+と+=はPythonで何をしますか?

      + =演算子は、object .__ iadd __()関数のシンタックスシュガーです。 Pythonドキュメントから: これらのメソッドは、拡張された算術割り当て(+ =、-=、* =、@ =、/ =、// =、%=、** =、)を実装するために呼び出されます。 =、&=、^ =、| =)。これらのメソッドは、その場で操作を実行し(自己を変更)、結果を返すようにする必要があります(自己である可能性がありますが、そうである必要はありません)。 例 だからあなたが次のようなことをするとき- a = 5 b = 10 a += b print(a) 出力 これにより、出力が得られます- 15