PIPIOJ1332 反转括号间的子串

1332: 反转括号之间的子串

(http://pipioj.online/problem.php?id=1332&csrf=mSaDn7l4YgZ9HG7ptI86BU71bDOjFuVx)

题目描述:

PIPI有一个字符串s , 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串。(PS: 串中每个左括号都有相应的右括号进行配对)

输入:

输入包含多组测试用例。
第一行输入字符串 s ,s的长度不会超过100。

输出:

对于每组测试用例,输出反转后的字符串(字符串中不包含任何括号)。

样例输入:

(((jo))ipip)
(((jo))(pi)ip)

样例输出:

pipioj
pipioj

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string str;
    while(cin>>str)
    {
        stack<int>s;
        for(int i=0;i<str.size();i++)
        {
            if(str[i]=='(')
                s.push(i);
            if(str[i]==')')
            {
                int b=s.top();
                s.pop();
                reverse(str.begin()+b,str.begin()+i+1); //reverse的用法
            }
        }
        for(int i=0;i<str.size();i++)
        {
            if(str[i]>='a'&&str[i]<='z')
                printf("%c",str[i]);
        }
        printf("\n");
    }
}
发布了28 篇原创文章 · 获赞 7 · 访问量 1171

猜你喜欢

转载自blog.csdn.net/weixin_44433678/article/details/104042623