LeetCode 1190. 反转每对括号间的子串(栈)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1190. 反转每对括号间的子串(栈)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
給出一個(gè)字符串 s(僅含有小寫英文字母和括號(hào))。
請(qǐng)你按照從括號(hào)內(nèi)到外的順序,逐層反轉(zhuǎn)每對(duì)匹配括號(hào)中的字符串,并返回最終的結(jié)果。
注意,您的結(jié)果中 不應(yīng) 包含任何括號(hào)。
示例 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 中只有小寫英文字母和括號(hào) 我們確保所有括號(hào)都是成對(duì)出現(xiàn)的來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
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);//遇到左括號(hào),前面字符串入棧temp = "";//清空}else if(s[i] == ')')//遇到右括號(hào),反轉(zhuǎn)當(dāng)前字符串{reverse(temp.begin(), temp.end());temp = stk.top()+temp;//并將前面的連接起來stk.pop();//前面的棧內(nèi)單詞,刪除}}return temp;} };總結(jié)
以上是生活随笔為你收集整理的LeetCode 1190. 反转每对括号间的子串(栈)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试金典 - 面试题 16.13.
- 下一篇: LeetCode 678. 有效的括号字