有效括號匹配

2021-10-01 04:37:08 字數 890 閱讀 9767

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: 「()」

輸出: true

示例 2:

輸入: 「(){}」

輸出: true

示例 3:

輸入: 「(]」

輸出: false

示例 4:

輸入: 「([)]」

輸出: false

示例 5:

輸入: 「」

輸出: true

解題思路:

使用乙個輔助棧進行括號的匹配操作

**實現:

bool isvalid(char * s)

int i = 0;

int top = 0;

int slen = strlen(s);

char* stack = (char*)malloc(slen + 1);

for (i = 0; i < slen; i++) else 』)) && (top == 0))

if ((s[i] == 『)』) && (stack[top - 1] != 『(』))

if ((s[i] == 『]』) && (stack[top - 1] != 『[』))

if ((s[i] == 『}』) && (stack[top - 1] != 『

stack[top - 1] = 』 ';

top–;}}

free(stack);

if (top != 0)

return true;

}

20 有效的括號(括號匹配 棧)

給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 false 示例 5 輸入 s 輸出 t...

最長有效括號 字串匹配題型

輸入 輸出 2 解釋 最長有效括號子串為 輸入 輸出 4 解釋 最長有效括號子串為 最直觀的棧解法,通過下標減下標值 class solution else if i dp i 1 0 s.charat i dp i 1 1 maxans math.max maxans,dp i return ma...

有效的括號

題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。解題思路 坦白來講這道題真的沒什麼思路,掉的坑也比較多,因為審題不認真,最後的一句話,注意空字串可被認為是有效字串。被吃掉了 最後提交的 執...