郑轻oj 1874 蛤玮学计网

来源:互联网 发布:免费刷钻软件安卓版 编辑:程序博客网 时间:2024/05/10 23:49

Description
蛤玮最近学习了关于ip的知识,于是他迫不及待的想把新知识传授给她的妹子.蛤玮的妹子随便写下了一个字符串,蛤玮现在要告诉她这个字符串是不是一个合法的ip地址.
为简单考虑,仅考虑ipv4的情况,即合法ip为形同"a1.a2.a3.a4",且0<=ai<=255。

Input

第一行为一个整数T(1<=T<=20),代表数据组数。接下来T行每行一个字符串,其中不包含空格,Tab以及回车,长度不超过50。

Output

若合法,输出"Yes",否则输出"No"(不包含引号)。

Sample Input
2
10.105.240.51
f.a.t.e
Sample Output
Yes
No
HINT


我们认为010.105.240.051是合法的。


思路:这道题就是模拟嘛。  我们要判断是否是只存在三个点,然后判断那些数是否在0和255之间。


AC代码:

#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <algorithm>#include <math.h>#define PI 3.1415926using namespace std;bool IsLegal(char str[]){    if(strlen(str)==0 || strlen(str)>3)        return false;    else    {        int len = strlen(str);        for(int i = 0; i < len; i++)        {            if(str[i]<'0'||str[i]>'9')                return false;        }        int sum = 0;        for(int i = 0; i < strlen(str); i++)            sum = sum*10 + (str[i]-'0');        if(sum>255)            return false;        return true;    }}int main(){    int t;    scanf("%d",&t);    while(t--)    {        char str[100];        char a[100];        scanf("%s",str);        int len = strlen(str);        str[len]='.';        str[len+1]='\0';        int st = 0;        int point = 0;  ///tong ji dian shu        bool flag = true;        for(int i = 0; i < strlen(str); i++)        {            if(str[i]=='.')            {                int k = 0;                for(int j = st; j < i; j++)                {                    a[k] = str[j];                    k++;                }                a[k]='\0';                if(IsLegal(a))                {                    st = i+1;                    point++;                }                else                {                    flag = false;                    break;                }            }        }        if(flag)        {            if(point-1 != 3)                printf("No\n");            else                printf("Yes\n");        }        else            printf("No\n");    }    return 0;}


0 0
原创粉丝点击