Pythonでaのすべてのグループの後に同じ長さのbのグループが続くかどうかを確認します
aとbの2文字だけの小文字の文字列sがあるとします。連続するaのすべてのグループの後に、同じ長さの連続するbのグループが続くかどうかを確認する必要があります。
したがって、入力がs ="abaaabbbaabbaabbab"の場合、すべてのグループが(ab)、(aaabbb)、(aabb)、(aabb)、(ab)であるため、出力はTrueになります。
これを解決するには、次の手順に従います-
- a_count:=0、string_len:=sのサイズ
- i:=0
- i
- i
- a_count:=a_count + 1
- i:=i + 1
- Falseを返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(s): a_count = 0 string_len = len(s) i = 0 while i < string_len: while i < string_len and s[i] == 'a': a_count += 1 i += 1 while i < string_len and s[i] == 'b': a_count -= 1 i += 1 if a_count != 0: return False return True s = "abaaabbbaabbaabbab" print(solve(s))
入力
"abaaabbbaabbaabbab"
出力
True
-
Pythonでエッジ長が制限されたパスの存在をチェックするプログラム
1つのedgeListを使用するn個のノードを持つ1つの無向加重グラフがあるとします。ここで、edgeList [i]には3つのパラメーター(u、v、w)があり、距離がwのuからvへのパスがあることを示します。 query [i]が(p、q、lim)を持つ別のクエリ配列もあります。このクエリは、距離がlim未満のpからqへのパス(直接または他のノード経由)があるかどうかを尋ねようとしています。クエリごとにTrue/Falseの結果を保持する配列を返す必要があります。 したがって、入力が次のような場合 2を使用して2に変換します。コストは14で15未満です。 これを解決するには、次の手
-
2つの二分木のリーフトラバーサルがPythonで同じかどうかを確認します
2分木があるとします。これら2本の木の葉の走査が同じかどうかを確認する必要があります。私たちが知っているように、葉の探索は左から右に横断する葉のシーケンスです。 したがって、入力が次のような場合 両方のツリーの左走査シーケンスが同じであるため、出力はTrueになります。つまり、[5、7、8]です。 これを解決するには、次の手順に従います- s1:=新しいリスト、s2:=別の新しいリスト r1をs1に挿入し、r2をs2に挿入します s1とs2が空ではない場合は、 s1が空の場合、またはs2が空の場合、 Falseを返す r1_node:=s1の最後のノードであり、s1