```#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;string s;
    while(cin>>n)
    {
        getchar();
        getline(cin,s);
        vector<char> v;
        for(int i=0;i<s.length();i++)
            if(s.find(s[i])==s.rfind(s[i]))    v.push_back(s[i]);
        if(v.size()<n)    cout<<"Myon~"<<endl;
        else    cout<<"["<<v[n-1]<<"]"<<endl;
    }
}
遍历一遍,把只出现一次的数依次放入数组中,如果数组的size小于n,那就是无解,否则最后在数组中取第n个就完事了。
怎么判断只出现一次就更简单了,正找和反找得到的下标如果一样,那肯定就是只出现一次。