Pythonでソートされた母音文字列をカウントするプログラム
数nがあるとすると、母音(a、e、i、o、u)のみで構成されるサイズnの文字列の数を見つける必要があり、辞書式順序で並べ替えられます。文字列sは、すべての有効なインデックスiについて、s[i]がアルファベットのs[i + 1]と同じか、その前にある場合に辞書式順序で並べ替えられていると言えます。
したがって、入力がn =2の場合、["aa"、 "ae"、 "ai"、 "ao"、 "au"、 "ee"、 "eiなどの文字列が多数あるため、出力は15になります。 "、" eo "、" eu "、" ii "、" io "、" iu "、" oo "、" ou "、"uu"]。
これを解決するには、次の手順に従います-
- nが1と同じ場合、
- 5を返す
- count:=サイズ6の配列で、最初は1で埋められています
- 3からnの範囲のiについては、
- count [1]:=count [1] + count [2] + count [3] + count [4] + count [5]
- count [2]:=count [2] + count [3] + count [4] + count [5]
- count [3]:=count [3] + count [4] + count [5]
- count [4]:=count [4] + count [5]
- 合計:=0
- 1から5の範囲のiについては、
- 合計:=合計+ i * count [i]
- 合計を返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(n): if n==1: return 5 count = [1 for i in range(6)] for i in range(3,n+1): count[1] = count[1]+count[2]+count[3]+count[4]+count[5] count[2] = count[2]+count[3]+count[4]+count[5] count[3] = count[3]+count[4]+count[5] count[4] = count[4]+count[5] total = 0 for i in range(1,6): total += i*count[i] return total n = 2 print(solve(n))
入力
2
出力
15
-
配列内の反転をカウントするPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。必要な反転をカウントして表示する必要があります。 反転カウントは、配列をソートするために必要なステップ数をカウントすることによって取得されます。 次に、以下の実装のソリューションを見てみましょう- 例 # count def InvCount(arr, n): inv_count = 0 for i in range(n): for j in range(i + 1, n):
-
Pythonプログラムでの挿入ソート
この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。 アルゴリズム ソートされた配列を各反復で拡張することにより、入力要素を反復します。 現在の要素を、並べ替えられた配列で使用可能な最大値と比較します。 現在の要素の方が大きい場合は、その要素をそのままにして次の要素に移動します。それ以外の場合は、並べ替えられた配列内で正しい位置を見つけて、配列内のその位置に移動します。 これは、並べ替えられた配列内の現在の要素よりも大きいすべての要素を右にシフトすることで実現されます。 それでは、アルゴリズムの視覚的表現を見てみましょう