题解 | #合法IP#

合法IP

https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9

#include <stdio.h>

int main() {
    int p1,p2,p3,p4;
    char str[105];
    p1=-1;p2=-1;p3=-1;p4=-1;
    while(scanf("%s",str)!=EOF){
        sscanf(str,"%d.%d.%d.%d",&p1,&p2,&p3,&p4);
        int flag=1,t=0;
        for(int i=0;str[i]!='\0';i++){
            if(t==0&&(str[i]=='0'||str[i]<'0'||str[i]>'9')&&str[i+1]>='0'&&str[i+1]<='9'){
                flag=0;
                break;
            }
            else{
                if(t==0&&str[i]!='.'){
                    t=1;
                }
                else{
                    if(str[i]=='.'){
                        t=0;
                    }
                }
            }
        }
        int num=0;
        for(int i=0;str[i]!='\0';i++){
            if(str[i]=='.')num++;
        }
        if(num!=3){
            flag=0;
        }
        if(flag==0){
            printf("NO\n");
            continue;
        }
        if(p1>=0&&p1<=255&&p2>=0&&p2<=255&&p3>=0&&p3<=255&&p4>=0&&p4<=255){
            printf("YES\n");
        }
        else{
            printf("NO\n");
        }
        p1=-1;p2=-1;p3=-1;p4=-1;
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务