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

Pythonで2つの文字列の連結のバランスが取れているかどうかを確認します


これらの文字'('および')'のみを含む2つのブラケットシーケンスsおよびtがあるとします。 sとtの連結文字列のバランスが取れているかどうかを確認する必要があります。連結はs|によって行うことができます。 tまたはt| s。

したがって、入力がs ="()()))"、t ="()(()("の場合、t | sを連結すると、 "()が得られるため、出力はTrueになります。 (()(()()))」、バランスが取れています。

これを解決するには、次の手順に従います-

  • 関数is_balanced_pa​​renthesis()を定義します。これには文字列が必要です
  • スタック:=新しいリスト
  • 0から文字列のサイズまでの範囲のiについては、
    • string[i]が'('(')と同じ場合、
      • string[i]をスタックにプッシュします
    • それ以外の場合、
      • スタックが空の場合、
        • Falseを返す
      • それ以外の場合、
        • スタックからポップ
  • スタックが空でない場合は、
    • Falseを返す
  • Trueを返す
  • メインの方法から次のようにします-
  • is_balanced_pa​​renthesis(s + t)がtrueの場合、
    • Trueを返す
  • return is_balanced_pa​​renthesis(t + s)

理解を深めるために、次の実装を見てみましょう-

def is_balanced_parenthesis(string):
   stack = []
   for i in range(len(string)):
      if string[i] == '(':
         stack.append(string[i])
      else:
         if len(stack) == 0:
            return False
         else:
            stack.pop()
   if len(stack) > 0:
      return False
   return True
def solve(s, t):
   if is_balanced_parenthesis(s + t):
      return True
   return is_balanced_parenthesis(t + s)
s = "()()))"
t = "()(()("
print(solve(s, t))

入力

"()()))", "()(()("

出力

True

  1. Pythonで数値がアキレス数であるかどうかを確認します

    数nがあるとします。 nがアキレス数であるかどうかを確認する必要があります。私たちが知っているように、数は強力な数の場合はアキレス数です(数Nは、その素因数pごとに、p ^ 2もそれを除算する場合、強力な数と呼ばれます)が、完全なべき数ではありません。アキレス数の例には、72、108、200、288、392、432、500、648、675、800、864、968、972、1125があります。 したがって、入力が108のような場合、6と36の両方がそれを分割し、完全な正方形ではないため、出力はTrueになります。 これを解決するには、次の手順に従います- 関数check_powerful(

  2. リストがPythonでソートされているかどうかを確認します

    リストは、Pythonで最も広く使用されているデータ収集です。指定されたリストがすでにソートされているかどうかを知る必要がある場合に遭遇する可能性があります。この記事では、これを実現するためのアプローチについて説明します。 並べ替えあり 指定されたリストのコピーを取得し、それに並べ替え関数を適用して、そのコピーを新しいリストとして保存します。次に、それを元のリストと比較して、それらが等しいかどうかを確認します。 例 listA = [11,23,42,51,67] #Given list print("Given list : ",listA) listA_copy =