Pythonで文字列を半単調にするために必要な更新の数を見つけるプログラム
長さが偶数の小文字の文字列があるとします。すべてのiについて次の3つの条件のいずれかが満たされるように、更新する必要のある最小文字数を見つける必要があります。ここで、0≤i
したがって、入力がs ="pppxxp"の場合、最後の"p"を"x"に変更すると、条件s [i]
これを解決するには、次の手順に従います-
理解を深めるために、次の実装を見てみましょう-
例
from collections import Counter
from string import ascii_lowercase
def solve(s):
n = len(s)
left = Counter(s[: n >> 1])
right = Counter(s[n >> 1 :])
ans = n
for pivot in ascii_lowercase:
ans = min(ans, n - left[pivot] - right[pivot])
good = sum(left[c] for c in left if c <= pivot)
good += sum(right[c] for c in right if c > pivot)
ans = min(ans, n - good)
good = sum(left[c] for c in left if c > pivot)
good += sum(right[c] for c in right if c <= pivot)
ans = min(ans, n - good)
return ans
s = "pppxxp"
print(solve(s))
入力
"pppxxp"
出力
1
-
Pythonで交差する行数を見つけるプログラム
(m、c)のペアの値を含むリストが与えられたとします。これらの値は線を表します。ここで、y =mx+cです。また、lとrの2つの値が与えられます。 x=lからx=hの範囲で互いに交差する線の数を見つける必要があります。 したがって、入力がinput_list =[[4、6]、[-6、10]、[8、12]]、l =0、h =2の場合、出力は2になります。 与えられた写真を見ると、4x + 6=0と-6x+10の線が与えられた範囲内で交差しています。したがって、交差する2つの線があるため、出力は2になります。 これを解決するには、次の手順に従います- seg:=インデックスiのペア
-
カットされたキューブの数を調べるPythonプログラム
次元a、b、およびcのいくつかの立方体があり、それらを使用して、次元axbxcの新しいボックスが作成されたとします。 a、b、およびcは互いに素です。 gcd(a、b)=gcd(b、c)=gcd(c、d)=1.図に示すように、ボックスを1つのスライスで2つに切断する必要があります。箱がこのようにカットされているかどうか、いくつの立方体が2つのピースにカットされているかを確認する必要があります。可能な3次元を含む配列が提供されており、そこから答えを見つける必要があります。 カットは、頂点P、Q、およびRを通過する平面になるようにこのように行われます。 したがって、入力がn =3、inp