cf797c 栈,字符串

it2022-05-05  158

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

按顺序把字符压栈即可

#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(); } } }

 

转载于:https://www.cnblogs.com/zsben991126/p/10226768.html


最新回复(0)