https://www.luogu.com.cn/problem/CF1722A
题目描述:
输入一个字符串,请判断这个字符串是不是字符串 Timur
的一种排列。
例如:Timur
,miurT
,Trumi
,mriTu
都是正确的排列。
注意:正确的排列必须包含大写的T和小写的其他字母。
输入格式:
输入的第一行一个整数 t t t ,表示有 t t t 组数据。
对于每组数据,第一行一个整数 n n n,表示输入的名字排列的长度。
第二行一个字符串,表示需要判断的排列。
输出格式:
对于每组数据,如果当前排列事是正确的,则输出 YES
,否则输出 NO
。
数据范围和约定
$ 1 \le t \le 10^3 $ , 1 ≤ n ≤ 10 1 \le n \le 10 1≤n≤10。
Translate By @Andy_L
Timur likes his name. As a spelling of his name, he allows any permutation of the letters of the name. For example, the following strings are valid spellings of his name: Timur, miurT, Trumi, mriTu. Note that the correct spelling must have uppercased T and lowercased other letters.
Today he wrote string $ s $ of length $ n $ consisting only of uppercase or lowercase Latin letters. He asks you to check if $ s $ is the correct spelling of his name.
The first line of the input contains an integer $ t $ ( $ 1 \leq t \leq 10^3 $ ) — the number of test cases.
The first line of each test case contains an integer $ n $ $ (1 \leq n \leq 10) $ — the length of string $ s $ .
The second line of each test case contains a string $ s $ consisting of only uppercase or lowercase Latin characters.
For each test case, output “YES” (without quotes) if $ s $ satisfies the condition, and “NO” (without quotes) otherwise.
You can output the answer in any case (for example, the strings “yEs”, “yes”, “Yes” and “YES” will be recognized as a positive answer).
10
5
Timur
5
miurT
5
Trumi
5
mriTu
5
timur
4
Timr
6
Timuur
10
codeforces
10
TimurTimur
5
TIMUR
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO
水题一道
#include<bits/stdc++.h>
using namespace std;
const int maxn=50;
int t,n;
string s;
int a[maxn];
inline void init(){
a[1]=9;
a[2]=13;
a[3]=18;
a[4]=20;
a[5]=21;
}
int main(){
cin>>t;
while(t--){
cin>>n>>s;
init();
if(n!=5){
printf("NO\n");
continue;
}
bool flag=false;
do{
for(int i=0;i<5;i++){
char x;
if(a[i+1]==20)x='T';
else x=a[i+1]+96;
//printf("x = %c\n",x);
if(x!=s[i])break;
if(i==4){
flag=true;
break;
}
}
if(flag)break;
}
while(next_permutation(a+1,a+5+1));
if(flag)printf("YES\n");
else printf("NO\n");
}
return 0;
}