zoukankan      html  css  js  c++  java
  • CF

      可以将t串用一个栈模拟,因为t串里的字符是从s串转移到t串的尾部而来,然后u串的字符又是由t串的尾部转移来,所以t串具有后进先出的性质,然后再贪心处理一下,因为要求u串字典序最小,所以当栈顶元素比s串里的所有元素都小时才出栈,否则不出栈。

    #include<bits/stdc++.h>
    using namespace std;
    int cnt[150];
    char str[100000+10];
    stack<char>s;
    int main()
    {
        int len;
        memset(cnt,0,sizeof(cnt));
        while(!s.empty()) s.pop();
        cin>>(str+1);
        len=strlen(str+1);
        for(int i=1;i<=len;i++)
            cnt[str[i]]++;
        for(int i=1;i<=len;i++)
        {
            int flag;
            s.push(str[i]);
            cnt[str[i]]--;
            while(!s.empty())
            {
                flag=1;
                for(int j=s.top()-1;j>='a';j--)
                    if(cnt[j]>=1)
                    {
                        flag=0;
                        break;
                    }
                if(!flag) break;
                cout<<s.top();
                s.pop();
            }
    
        }
        cout<<endl;
        return 0;
    }
    
  • 相关阅读:
    hdu1042-N!-(java大数)
    拓扑排序-有向无环图(DAG, Directed Acyclic Graph)
    deleted
    deleted
    deleted
    deleted
    deleted
    deleted
    deleted
    deleted
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754912.html
Copyright © 2011-2022 走看看