tb的字符串问题

https://ac.nowcoder.com/acm/problem/276167

给定一个长度为 len 的字符序列,字符只可能是 'b''t''c''f' 中的一种。使用栈来处理这个字符序列,每当遇到特定的字符组合('c' 紧跟 'f' 或者 'b' 紧跟 't')时,就从栈中弹出最后一个字符,否则将新读取的字符加入栈。最后输出栈的最终大小。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
deque<char>st;
signed main()
{
    ll len;
    cin>>len;
    char ch;
    while(len--)
    {
        cin>>ch;
        if(st.empty())
        {
            st.push_back(ch);
            continue;
        }
        if((ch=='c'&&st.back()=='f')||(ch=='b'&&st.back()=='t'))
        {
            st.pop_back();
        }
        else{
            st.push_back(ch);
        }
    }
    cout<<st.size();
    
}

全部评论

相关推荐

重生我想学测开:嵌入式的问题,我准备入行京东外卖了
点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务