Pythonで有効な最長の括弧
これを解決するには、次の手順に従います-
-
スタックを作成し、-1を挿入し、ans:=0
を設定します。 -
0からスタックの長さまでの範囲のiの場合– 1
-
s [i]が開き括弧の場合は、iをスタックに挿入します
-
それ以外の場合
-
スタックが空でなく、スタックの最上位が-1でなく、s [stack top]が開き括弧である場合、
-
スタックの最上位要素
-
ans:=ansとiの最大値–スタックトップ
-
-
それ以外の場合は、iをスタックに挿入します
-
-
-
ansを返す
例
理解を深めるために、次の実装を見てみましょう-
class Solution(object): def longestValidParentheses(self, s): stack = [-1] ans = 0 for i in range(len(s)): if s[i] == "(": stack.append(i) else: if stack and stack[-1]!=-1 and s[stack[-1]] == "(": stack.pop() ans = max(ans,i - stack[-1]) else: stack.append(i) return ans ob = Solution() print(ob.longestValidParentheses("))(())())"))
入力
"))(())())"
出力
6
-
Pythonで有効なアナグラム
アナグラムは基本的に、特定の文字列またはパターンのすべての順列です。このパターン検索アルゴリズムは少し異なります。この場合、正確なパターンが検索されるだけでなく、テキスト内の指定されたパターンのすべての可能な配置が検索されます。したがって、入力が「ANAGRAM」と「NAAGARM」の場合、それらはアナグラムですが、「cat」と「fat」はアナグラムではありません これを解決するために、文字列を文字のリストに変換してから並べ替えます。並べ替えられた2つのリストが同じ場合は、アナグラムです。 例(Python) 理解を深めるために、次の実装を見てみましょう- class Solution(o
-
Pythonで有効な回文
英数字の値と記号を含む文字列があるとします。小文字と大文字もあります。文字列が回文を形成しているかどうかは、小文字(大文字は小文字に変換されます)、コンマ、スペースなどの他の記号のみを考慮して確認する必要があります。 文字列が「男、計画、運河:パナマ」のようなものであるとすると、これらのルールを考慮すると、「アマナプラナカナルパナマ」になります。これは回文です。 これを解決するには、次の手順に従います- define x =“” str −の各文字cを読み取ります cが小文字または数字の場合は、cをxに追加します それ以外の場合、cは大文字で、小文字に変換してxの後に追加します