基础题。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int T;
cin >> T;
getchar();
while (T--)
{
string s;
getline(cin, s);
int len = s.size();
int numE = 0, numMinus = 0, numPoint = 0; //'E'的数量,'-'的数量,'.'的数量
bool flag = true;
for (int i = 0; i < len; i++)
{
if ((s[i] < '0' || s[i] > '9') && s[i] != '.' && s[i] != 'E' && s[i] != '-')
{
flag = false;
break;
}
else if (s[i] == 'E')
{
++numE;
if (i == 0 || i == len - 1 || numE > 1)
{
flag = false;
break;
}
}
else if (s[i] == '-')
{
++numMinus;
if (i == 0 || s[i - 1] != 'E' || i == len - 1 || numMinus > 1)
{
flag = false;
break;
}
}
else if (s[i] == '.')
{
++numPoint;
if (i == 0 || i == len - 1 || numPoint > 1 || numE > 0)
{
flag = false;
break;
}
}
}
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
继续加油。