Pythonの開始終了範囲で連続して増加するすべての数値を検索するプログラム
開始と終了の2つの数値があるとすると、範囲[start、end]のすべての数値eが含まれ、eの桁が連続して増加するように、整数のソートされたリストを見つける必要があります。継続的に増加する数の例は5678ですが、169はそうではありません。
したがって、入力がstart =10 end =150の場合、出力は[12、23、34、45、56、67、78、89、123]
になります。これを解決するには、次の手順に従います-
- s:=文字列「123456789」としての9桁すべて
- a:=新しいリスト
- 0から8の範囲のiについては、
- i + 1〜9の範囲のjの場合、do
- x:=(インデックスiからj-1までのsの部分文字列)を数値として
- 開始<=x<=終了の場合、
- xをaに挿入
- i + 1〜9の範囲のjの場合、do
- リストを並べ替えて返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(start, end): s = "123456789" a = [] for i in range(9): for j in range(i + 1, 10): x = int(s[i:j]) if start <= x <= end: a += (x,) return sorted(a) start = 10 end = 150 print(solve(start, end))
入力
10, 150
出力
[12, 23, 34, 45, 56, 67, 78, 89, 123]
-
Pythonで範囲内のノード数を見つけるプログラム
BSTがあり、左と右の境界lとrもあるとすると、lとrの間に値が存在するルート内のすべてのノードの数を見つける必要があります。 したがって、入力が次のような場合 l =7、r =13の場合、8、10、12の3つのノードがあるため、出力は3になります。 これを解決するために、次の手順に従います- スタック:=スタックと最初にルートを挿入し、カウント:=0 スタックが空でないときに、実行します node:=スタックの最上位要素、およびポップ要素 ノードがnullでない場合、 l<=ノードのデータ<=rの場合、 count:=count + 1
-
ある間隔ですべての素数を出力するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −与えられた範囲内のすべての素数を計算するために必要な間隔が与えられます ここでは、解を得るための強引なアプローチ、つまり素数の基本的な定義について説明します。素数は、1とそれ自体を因数として持ち、残りのすべての数はその因数ではない数です。 素数の条件が真であると評価されるたびに、計算が実行されます。 それでは、以下の実装の概念を見てみましょう- 例 start = 1 end = 37 for val in range(start, end + 1): # If num is