hdu 1409

7494 ワード

タイトルリンク: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 }