1 条题解

  • 1
    @ 2026-6-2 22:56:07

    注意到

    每个字符只出现一次而且还不能改变顺序

    那么问题来了

    那咱们遍历数组

    用一个哈希存储这个数字有没有出现过

    如果出现过就跳过,没有就加入到ans数组里

    最后输出ans数组即可

    C++

    #define AC ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
    #define ll long long
    #define vec vector
    ll n;
    int main()
    {
        AC;
        cin>>n;
        unordered_set<ll>hx;
        vec<ll>ans;
        for(int i=0;i<n;++i)
        {
            ll x; cin>>x;
            if(hx.find(x)==hx.end())
            {
                hx.insert(x);
                ans.push_back(x);
            }
        }
        for(int i=0;i<(int) ans.size();++i) cout<<ans[i]<<' ';
        return 0;
    }
    

    Python

    import sys
    arr=list(map(int,sys.stdin.read().split()))
    n=arr[0]
    s=set()
    res=[]
    for i in range(1,n+1):
        x=arr[i]
        if x not in s:
            s.add(x)
            res.append(str(x))
    print(' '.join(res))
    
    • 1

    信息

    ID
    1168
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    7
    已通过
    3
    上传者