Pythonでnステップでコピーアンドペーストして最大文字数を印刷するようにプログラムしますか?
数nがあるとします。 n個の操作を使用して入力できる最大文字数を見つける必要があります。各操作は次のようになります
-
文字「x」を挿入します。
-
すべての文字をコピーします。
-
貼り付け
したがって、入力がn =12の場合、出力は81になります。
これを解決するために、次の手順に従います
-
n <=4の場合、
-
nを返す
-
-
v:=6、x:=3、i:=5、j:=0
-
iはnと同じではありませんが、実行してください
-
v:=v + x
-
i:=i + 1、j:=j + 1
-
jが3で割り切れる場合、
-
x:=(x * 1.5)の整数
-
-
それ以外の場合、jが3で割り切れない場合は、
-
何もしない
-
-
それ以外の場合
-
x:=x * 2
-
-
-
vを返す
理解を深めるために、次の実装を見てみましょう
例
class Solution: def solve(self, n): if n <= 4: return n v = 6 x = 3 i = 5 j = 0 while i != n: v += x i += 1 j += 1 if j % 3 == 0: x = int(x * 1.5) elif j % 3 == 1: pass else: x *= 2 return v ob = Solution() n = 12 print(ob.solve(n))
入力
12
出力
81
-
Pythonで各ブラケットの深さの文字数をカウントするプログラム
「X」、「(」、および「)」の3文字のみで構成される文字列sがあるとします。文字列にはバランスの取れた角かっこがあり、いくつかの「X」の間に入れ子になった角かっこが再帰的に存在する可能性があります。ブラケットの各深さで、最も浅い深さから最も深い深さまで、「X」の数を見つける必要があります。 したがって、入力がs =(XXX(X(XX))XX)のような場合、出力は[5、1、2]になります。 これを解決するには、次の手順に従います- 深さ:=-1 out:=新しいリスト sの各cについて、 cが(と同じ場合、 深さ:=深さ+ 1 それ以外の場合、cが )と同じ場合、 深度
-
Pythonで8パズルを解くためのステップ数を見つけるプログラム
すべての数字が0から8の範囲にあり、繰り返しの数字がない3x3ボードがあるとします。これで、0を4つの隣接ノードのいずれかと交換できます。これを解決して、すべての配置されたシーケンスを取得しようとしています。目標に到達するために必要な最小ステップ数を見つける必要があります。 したがって、入力が次のような場合 3 1 2 4 7 5 6 8 0 その場合、出力は4になります これを解決するには、次の手順に従います- 関数find_next()を定義します。これはノードを取ります moves:=各値に対応する