问题描述:
莱特与瑞秋毕业了,他们决定在内蒙创业成立一家畜牧业公司,创业第一步:他们希望给公司里的每一只羊一个编号。编号的命名规如下:
1、长度为10位;
2、前两位必须为“LQ”;
2、后八位必须为数字;
现在有若干个字符串,希望你写一个程序判断它是不是一个合法的编号。
输入格式:
第一行一个
T
(
1
≤
T
≤
20
)
T(1≤T≤20)
T(1≤T≤20)代表数据组数。
每组测试数据有一个字符串
s
(
1
≤
∣
s
∣
≤
20
)
s(1≤|s|≤20)
s(1≤∣s∣≤20),是只包含数字和大写英文字母,代表等待判断的字符串。
输出格式:
如果编号合法输出“YES”,否则输出“NO”。
数据范围
无
输入样例:
3
LQ12345678
LQ123
QL12345678
输出样例:
YES
NO
NO
思路
1、判断前两位是否为“LQ”;
2、判断长度为10位;
3、判断后八位是否为数字;
C++代码:
#include <iostream>
#include <cstring>
using namespace std;
const int N = 10010;
int t;
char a[N];
int main()
{
cin >> t;
while(t -- )
{
cin >> a;
if(a[0] != 'L' || a[1] != 'Q')
{
cout << "NO" << endl;
continue;
}
if(strlen(a) != 10)
{
cout << "NO" << endl;
continue;
}
for(int i = 2; i < 10; i++)
{
if(a[i] < '0' || a[i] > '9')
{
cout << "No" << endl;
break;
}
}
cout << "YES" << endl;
}
return 0;
}
注:暴力,匹配即可。