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

Pythonでの文字タイルの可能性


タイルのセットがあり、各タイルに1文字のタイル[i]が印刷されているとします。私たちが作ることができる文字の可能な空でないシーケンスの数を見つけてください。したがって、入力が「AAB」の場合、出力は8になります。シーケンスは「A」、「B」、「AA」、「AB」、「BA」、「AAB」、「ABA」、「BAA」です。

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

  • カウントされる1つのdfs()を定義します
  • 合計:=0
  • 1から26の範囲のiの場合
    • count [i] =0の場合、残りをチェックせずに次の反復に進みます
    • count [i]を1減らし、合計を1増やします
    • sum:=sum + dfs(count)
    • count[i]を1つ増やします
  • 合計を返す
  • 実際の方法は次のようになります-
  • サイズ26のカウント配列を1つ作成し、これに0を入力します
  • タイル内の各要素iについて
    • count [i –‘A’+1]を1増やします
  • return dfs(count)

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

class Solution(object):
   def numTilePossibilities(self, tiles):
      count = [0 for i in range(27)]
      for i in tiles:
         count[ord(i)-ord('A')+1]+=1
      return self.dfs(count)
   def dfs(self,count):
      summ = 0
      for i in range(1,27):
         if count[i]==0:
            continue
         count[i]-=1
         summ+=1
         summ+=self.dfs(count)
         count[i]+=1
      return summ
ob = Solution()
print(ob.numTilePossibilities("AAB"))

入力

"AAB"

出力

8

  1. 配列内の反転をカウントするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。必要な反転をカウントして表示する必要があります。 反転カウントは、配列をソートするために必要なステップ数をカウントすることによって取得されます。 次に、以下の実装のソリューションを見てみましょう- 例 # count def InvCount(arr, n):    inv_count = 0    for i in range(n):       for j in range(i + 1, n):  

  2. Pythonのクラス変数または静的変数?

    クラス内でメソッドの外部で変数を宣言すると、pythonではクラスまたは静的変数として呼び出されます。クラスまたは静的変数はクラスを介して参照できますが、インスタンスを介して直接参照することはできません。 クラス変数または静的変数は、同じ名前の他のメンバー変数とはまったく異なり、競合しません。以下は、クラスまたは静的変数の使用法を示すプログラムです- 例 class Fruits(object): count = 0 def __init__(self, name, count): self.name = name self.count = count Fruits.count = Frui