当前位置: 首页 > 工具软件 > Spell Check > 使用案例 >

CF1722A Spell Check 题解

昌招
2023-12-01

题目

链接

https://www.luogu.com.cn/problem/CF1722A

字面描述

题面翻译

题目描述:

输入一个字符串,请判断这个字符串是不是字符串 Timur 的一种排列。

例如:TimurmiurTTrumimriTu 都是正确的排列。

注意:正确的排列必须包含大写的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 1n10

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).

样例 #1

样例输入 #1

10
5
Timur
5
miurT
5
Trumi
5
mriTu
5
timur
4
Timr
6
Timuur
10
codeforces
10
TimurTimur
5
TIMUR

样例输出 #1

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;
} 
 类似资料: