题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1409
思路:就是把所有的不符点条件都排除掉,如果都符合,就Yes,否则,No;
View Code
1 #include<cstdio> 2 #include<cstring> 3 4 int main(){ 5 int _case; 6 scanf("%d",&_case); 7 getchar(); 8 while(_case--){ 9 char str[110]; 10 gets(str); 11 int cnt1,cnt2,p,len=strlen(str); 12 cnt1=cnt2=p=0; 13 bool flag=true; 14 for(int i=0;i<len;i++){ 15 if((str[i]<'0'||str[i]>'9')&&str[i]!='.'&&str[i]!='E'&&str[i]!='-'){ 16 flag=false;break; 17 }else if(str[i]=='E'){ 18 cnt1++; 19 if(i==0||(i+1)==len||cnt1>1){ 20 flag=false;break; 21 } 22 }else if(str[i]=='-'){ 23 cnt2++; 24 if(i==0||str[i-1]!='E'||(i+1)==len||cnt2>1){ 25 flag=false;break; 26 } 27 }else if(str[i]=='.'){ 28 p++; 29 if((i+1)==len||i==0||p>1||cnt1>0){ 30 flag=false;break; 31 } 32 } 33 } 34 flag?puts("YES"):puts("NO"); 35 } 36 return 0; 37 }