LeetCode 1190 反转每对括号间的子串[栈]
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1190 反转每对括号间的子串[栈]相关的知识,希望对你有一定的参考价值。
解题思路:
遇到字符串有条件变化(遇到括号或者运算符),第一个想到的方法就应该是栈,毕竟栈的方法是基于递归的,而括号也是递归的形式,本题首先定义好栈和空字符串,遇到左括号当前遍历的序列进栈,遇到右括号翻转当前序列并把栈顶出栈,否则就是单纯字符入字符串,仔细推理应该能够找到这样的规律,代码如下:
class Solution {
public:
string reverseParentheses(string s) {
// 定义栈和字符串
stack<string> st;
string str;
for(char& c : s) {
// 遇到左括号当前遍历的序列进栈
if(c == '(') {
st.push(str);
str = "";
} else if(c == ')') {// 遇到右括号翻转当前序列并把栈顶出栈
reverse(str.begin(), str.end());
str = st.top() + str;
st.pop();
} else {// 遍历数组
str.push_back(c);
}
}
return str;
}
};
/*作者:heroding
链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-parentheses/solution/czhan-by-heroding-n2uo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/
以上是关于LeetCode 1190 反转每对括号间的子串[栈]的主要内容,如果未能解决你的问题,请参考以下文章