//这题不难,就是格式很令人爆炸,比如01这种不算正确,..这种也要考虑 #include<stdio.h> #include<string.h> int main(void) { char str[100]={0}; int flag=0; int flag2=0; while(scanf("%s",&str)!=EOF) { int len=strlen(str); int a=0; for(int i=0;i<len;i++) { int temp; if(str[i]!='.') { temp=(str[i]-'0'); a=a*10+temp; } if(str[i]=='0'&&(str[i+1]>'0'&&str[i+1]<'9')) { flag--; if(str[i-1]>'0'&&str[i-1]<'9') { flag++; } } if(str[i]=='.'||i==(len-1)) { if(str[i]=='.'&&i==0) { flag--; } if(str[i]=='.'&&i>=1&&str[i-1]=='.') { flag--; } if(a>=0&&a<=255&&i!=0) { flag++; } a=0; } } //printf("%d\n",flag); if(flag==4) { printf("YES"); } else { printf("NO"); } } return 0; }