LeetCode 1190. 反转每对括号间的子串(栈)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1190. 反转每对括号间的子串(栈)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給出一個字符串 s(僅含有小寫英文字母和括號)。
請你按照從括號內到外的順序,逐層反轉每對匹配括號中的字符串,并返回最終的結果。
注意,您的結果中 不應 包含任何括號。
示例 1: 輸入:s = "(abcd)" 輸出:"dcba"示例 2: 輸入:s = "(u(love)i)" 輸出:"iloveu"示例 3: 輸入:s = "(ed(et(oc))el)" 輸出:"leetcode"示例 4: 輸入:s = "a(bcdefghijkl(mno)p)q" 輸出:"apmnolkjihgfedcbq"提示: 0 <= s.length <= 2000 s 中只有小寫英文字母和括號 我們確保所有括號都是成對出現的來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 棧解題
class Solution { public:string reverseParentheses(string s) {stack<string> stk;string temp;for(int i = 0; i < s.size(); ++i){if(s[i] != '(' && s[i] != ')')temp.push_back(s[i]);//字符串else if(s[i] == '('){stk.push(temp);//遇到左括號,前面字符串入棧temp = "";//清空}else if(s[i] == ')')//遇到右括號,反轉當前字符串{reverse(temp.begin(), temp.end());temp = stk.top()+temp;//并將前面的連接起來stk.pop();//前面的棧內單詞,刪除}}return temp;} };總結
以上是生活随笔為你收集整理的LeetCode 1190. 反转每对括号间的子串(栈)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试金典 - 面试题 16.13.
- 下一篇: LeetCode 678. 有效的括号字