洛谷B3690 [语言月赛202212] 盒武器 80分


#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int tt[N];
int k[N];
int main()
{
    string s,t;
    cin>>t>>s;
    for(int i=0;i<t.size();i++) tt[t[i]]++;
    for(int i='a';i<='z';i++)
    {
        if(tt[i]==0) cout<<(char)i;
    }
    for(int i=t.size()-1;i>=0;i--)
    {
        if(k[t[i]]==0) cout<<t[i];
        k[t[i]]++;
    }
    return 0;
}

我的思路是:题目中说“在输出中靠前位置的字母小于在输出中靠后位置的字母”,那么我只要把L队的字符串倒着放到更改后的字典序最后,这样不管另一个字符串是什么,反正L队的字符串是最大的
但是提交后只有80分,不知道哪儿有问题

如果s包含t的话,比如s = abc, t = ab。你的程序的输出应该是defghijklmnopqrstuvwxyzcba,此时s > t。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^