题解 | #合法IP#

合法IP

https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9?tpId=37&tqId=21313&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D2%26tpId%3D37%26type%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

#include <stdio.h>
#include <string.h>

int main() {
    char str[18]={0};
    int ip[4]={0,-1,-1,-1},sig[4]={0};      //  sig表示该ip位是否有输入
    int flag,tmp;
    while (scanf("%s", str) != EOF) {
        flag=0;
        int j=0;
        for(int i=0;i<strlen(str);i++){          
            if(str[i]=='.'){
                j++;
                ip[j]=0;
                sig[j]=0;
            }
            else if(str[i]>='0'&&str[i]<='9'){
                if(sig[j]==1 && ip[j]==0){
                    flag=1;
                    break;
                }
                ip[j]=ip[j]*10+str[i]-'0';
                sig[j]=1;
            }
            else{
                flag=1;
                break;
            }        
        }
        if(j>3){
            flag=1;
        }
        for(j=0;j<4;j++){
            if(ip[j]<0 || ip[j]>255 || sig[j]==0){
                flag=1;
                break;
            }
        }
        if(flag){
            printf("NO\n");
        }
        else{
            printf("YES\n");
        }
        
    }
    return 0;
}

用例真是各种稀奇古怪的用例都出来了

全部评论

相关推荐

影04714:把图书管理系统那个项目经验内容适当的减少掉,然后改成据为己有不要说团队项目,因为图书管理系统这类常见的谁来了都能独立写出来,提问能圆过来即可
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务