1.タイトル
ビット文字列がいずれかの条件を満たす場合、アクティブブラケット文字列と呼ばれることがあります(有効な括弧文字列、VPSと省略される場合があります)。
- 空の文字列は文字列
""
であるか、"(" 或 ")"
単一の文字ではありません。 - 文字列はAB(AとBが連結されている)として記述できます。ここで、AとBは両方とも有効な括弧で囲まれた文字列です。
- 文字列は(A)と書くことができます。ここで、Aは有効な括弧で囲まれた文字列です。
同様に、任意の有効なブラケット文字列Sのネスト深度depth(S)を定義できます。
depth("") = 0
depth(A + B) = max(depth(A), depth(B))
、ここで、AとBは両方とも有効な括弧で囲まれた文字列ですdepth("(" + A + ")") = 1 + depth(A)
、ここで、Aは有効な括弧で囲まれた文字列です
例:""、"()()"、"()(()())"
すべてのアクティブなブラケット文字列(それぞれ0、1、2のネストの深さ)。ただし")(" 、"(()"
、有効な文字列ブラケットではありません。
有効なブラケット文字列sを提供し、文字列の入れ子の深さを返します。
示例 1:
输入:s = "(1+(2*3)+((8)/4))+1"
输出:3
解释:数字 8 在嵌套的 3 层括号中。
示例 2:
输入:s = "(1)+((2))+(((3)))"
输出:3
示例 3:
输入:s = "1+(2*3)/(2-1)"
输出:1
示例 4:
输入:s = "1"
输出:0
提示:
1 <= s.length <= 100
s 由数字 0-9 和字符 '+'、'-'、'*'、'/'、'('、')' 组成
题目数据保证括号表达式 s 是 有效的括号表达式
出典:LeetCode(LeetCode)
リンク:https://leetcode-cn.com/problems/maximum-nesting-depth-of-the-parentheses
著作権はLeetCodeが所有しています。商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。
2.問題解決
- 左の括弧
++
に会う、右の括弧に会う--
class Solution {
public:
int maxDepth(string s) {
int maxdepth = 0, deep = 0;
for(char c : s)
{
if(c == '(')
deep++;
else if(c == ')')
deep--;
maxdepth = max(maxdepth, deep);
}
return maxdepth;
}
};
4 ms 5.9 MB
私のCSDNブログアドレスhttps://michael.blog.csdn.net/
コードを長押しまたはスキャンして、私の公式アカウント(Michael Amin)をフォローし、一緒に応援し、一緒に学び、進歩してください!