20 有效的括號 (棧的使用)

2022-04-09 14:27:06 字數 667 閱讀 4105

題目描述:括號(小括號、中括號、大括號)的匹配

傳送門:

解法:《資料結構》中作為例子引出棧的概念。用乙個棧維護,從左到右掃瞄目標字串,如果括號匹配,即滿足三種情況:

①、s[i] == '

)' && stack.top() == '

('

②、s[i] == '

]' && stack.top() == '

['

③、s[i] == '

}' && stack.top() == '

else

if (s[i] == '

)' && stack.top() == '('

)

else

if (s[i] == '

]' && stack.top() == '['

)

else

if (s[i] == '

}' && stack.top() == '

else

}if (!stack.empty()) return

false

;

return

true

; }

};

20 有效的括號(棧)

判斷括號是否匹配,思路是 1 需要乙個輔助資料結構棧,將字串從第乙個字元開始逐個遍歷,如果該字元是左括號,如 則判斷該字元是否與棧頂的括號匹配。如果匹配,進入下一輪迴圈,即判斷下乙個字元。如果不匹配,直接退出函式,返回false,即無效括號。3 如果字串中每乙個字元都遍歷完了,最後看棧是否為空,如果...

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

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

LeetCode 20 (有效的括號) 棧

q 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 false 示例 3 輸入 輸出 false 我的想法是使用棧的思想 1.先把第乙個符號入棧...