Python
 Computer >> コンピューター >  >> プログラミング >> Python

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
  • i
  • a_count:=a_count-1
  • i:=i + 1
  • a_countが0でない場合、
    • Falseを返す
  • Trueを返す
  • 理解を深めるために、次の実装を見てみましょう-

    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

    1. 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. 2つの二分木のリーフトラバーサルがPythonで同じかどうかを確認します

      2分木があるとします。これら2本の木の葉の走査が同じかどうかを確認する必要があります。私たちが知っているように、葉の探索は左から右に横断する葉のシーケンスです。 したがって、入力が次のような場合 両方のツリーの左走査シーケンスが同じであるため、出力はTrueになります。つまり、[5、7、8]です。 これを解決するには、次の手順に従います- s1:=新しいリスト、s2:=別の新しいリスト r1をs1に挿入し、r2をs2に挿入します s1とs2が空ではない場合は、 s1が空の場合、またはs2が空の場合、 Falseを返す r1_node:=s1の最後のノードであり、s1