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

すべてのサブ番号にPythonで個別のDigit製品があるかどうかを確認します


数nがあるとすると、この数のすべてのサブ番号に一意の桁の積があるかどうかを確認する必要があります。ご存知のように、n桁の数字にはn *(n + 1)/2個のサブ番号があります。たとえば、135のサブ番号は1、3、5、13、35、135です。また、数値の桁の積はその桁の積です。

したがって、入力がn =235のような場合、サブ番号は[2、3、5、23、35、235]、桁の積は[2、3、5、6、15、30]であるため、出力はTrueになります。 ]

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

関数dig_prod()を定義します。これには数字が必要です

  • product:=1
  • 数字のdごとに、
    • product:=product * d
  • 返品
  • メインの方法から次の手順を実行します。
  • num_str:=num as string
  • 長さ:=num_strのサイズ
  • Digits:=サイズの長さのリストで、最初はすべての値がnullです
  • prod_set:=新しい空のセット
  • 0から長さの範囲のiについては、
    • integers [i]:=num_str [i] as integer
  • 0から長さ-1の範囲のiの場合、実行
    • iから長さ-1までの範囲のjの場合、do
      • item:=dig_prod(digits [from index i to j])
      • アイテムがprod_setにある場合、
        • Falseを返す
      • それ以外の場合、
        • アイテムをprod_setに挿入
  • Trueを返す

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

def dig_prod(digits):
   product = 1
   for d in digits:
      product *= d
   return product
def solve(num):
   num_str = str(num)
   length = len(num_str)
   digits = [None] * length
   prod_set = set()
   for i in range(0, length):
      digits[i] = int(num_str[i])
   for i in range(0, length):
      for j in range(i, length):
         item = dig_prod(digits[i:j+1])
         if item in prod_set:
            return False
         else:
            prod_set.add(item)
   return True
n = 235
print(solve(n))

入力

235

出力

True

  1. Pythonですべてのタプルの長さが同じかどうかを確認します

    この記事では、特定のリスト内のすべてのタプルが同じ長さであるかどうかを確認します。 len付き len関数を使用して、その結果を検証中の特定の値と比較します。値が等しい場合は同じ長さであると見なし、そうでない場合はそうではありません。 例 listA = [('Mon', '2 pm', 'Physics'), ('Tue', '11 am','Maths')] # printing print("Given list of tuples:\n", listA) # check

  2. 文字列にすべての一意の文字が含まれているかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 sring入力が与えられた場合、文字列にすべての一意の文字が含まれているかどうかを確認する必要があります。 アプローチ ブール値の配列を作成します。ここで、インデックスiの変数フラグは、アルファベットの文字iが文字列に含まれているかどうかを示します。 この文字に2回目に遭遇したとき、文字列文字は一意ではなくなったため、すぐにfalseを返すことができます。 文字列の長さがアルファベットに表示される一意の文字数の値を超える場合も、falseを返すことができます。 文