首页 > 其他 > 详细

cf797c 栈,字符串

时间:2019-01-05 23:40:06      阅读:132      评论:0      收藏:0      [点我收藏+]

还以为能用单调栈做出来,,想了老半天,最后发现模拟一下很好做的

按顺序把字符压栈即可

#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
char s[maxn];
stack<int>stk;
int vis[30];
int main(){
    scanf("%s",s);
    int len=strlen(s);
    for(int i=0;i<len;i++)vis[s[i]-a]++;
    
    for(int i=0;i<len;i++){
        stk.push(s[i]-a);
        vis[s[i]-a]--;
        int flag=0;
        while(!stk.empty()){
            int tmp=stk.top();
            for(int i=0;i<tmp;i++)if(vis[i])flag=1;
            if(flag) break;
            putchar(tmp+a);
            stk.pop();
        }
    }
} 

 

cf797c 栈,字符串

原文:https://www.cnblogs.com/zsben991126/p/10226768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!