1 条题解

  • 0
    @ 2022-10-12 9:07:11

    这题做法很多,常规做法就是看输入的字符串是否是由那五个字母组成。这里提供一个不同的思路,某个序列的所有排列在排序后必然都是一样的。所以只要看输入的字符串和规定的字符串排序后是否相等即可!

    ans.begin()ans.end() 是字符串的两个迭代器,分别表示开始的位置和结束位置的后一个位置。如果不熟悉的同学也可以把字符串存到一个字符型数组后,对字符型数组进行排序。

    #include <bits/stdc++.h>
    using namespace std;
    int t, n;
    string s;
    int main()
    {
        string ans = "Timur";
        sort(ans.begin(), ans.end());
    
        cin >> t;
        while (t--) //等价于 for(;t>0;t--)
        {
            cin >> n;
            cin >> s;
            sort(s.begin(), s.end());
            if (s == ans)
                cout << "YES\n";
            else
                cout << "NO\n";
        }
        return 0;
    }
    
    • 1

    信息

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