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

Pythonでi、j、k個のx、y、z文字のサブシーケンスの数を見つけるプログラム


「x」、「y」、「z」の文字列sがあるとすると、i個の「x」文字、j個の「y」文字、続いて続くサブシーケンスの数を見つける必要があります。 k個の「z」文字(i、j、k≥1)。

したがって、入力がs ="xxyz"の場合、出力は3になります。これは、2つの"xyz"と1つの"xxyz"を作成できるためです

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

  • n:=sのサイズ

  • x:=0、y:=0、z:=0

  • 0からnの範囲のiの場合、実行

    • カウント:=0

    • s[i]が"x"と同じ場合、

      • x:=x * 2

      • x:=x + 1

    • s[i]が"y"と同じ場合、

      • y:=y * 2

      • y:=y + x

    • s[i]が"z"と同じ場合、

      • z:=z * 2

      • z:=z + y

  • zを返す

class Solution:
   def solve(self, s):
      n = len(s)

      x = 0
      y = 0
      z = 0
      for i in range(n):
         count = 0
         if s[i] == "x":
            x *= 2
            x += 1
         if s[i] == "y":
            y *= 2
            y += x
         if s[i] == "z":
            z *= 2
            z += y

      return z

ob = Solution()
print(ob.solve("xxyz"))

入力

"xxyz"

出力

3

  1. Pythonで最大のビットごとのANDとビットごとのORを持つサブシーケンスを検索します

    n個の要素の配列があるとすると、ビットの合計が最初のサブシーケンスのすべての要素の賢明なAND演算と、2番目のサブシーケンスのすべての要素のビット単位のOR演算が最大になります。 したがって、入力がA ={4、6、7、2}の場合、7のみを選択して最大AND値を取得し、すべてを選択して最大OR値を取得するため、出力は14になります(4 | 6 | 7 | 2)=7.したがって、結果は7 + 7=14になります。 これを解決するには、次の手順に従います- and_max:=arrの最大値 or_max:=0 0からarrのサイズまでの範囲のiの場合、実行します or_m

  2. リスト内で最大数を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is: