蛤玮学计网

来源:互联网 发布:三星门锁app软件 编辑:程序博客网 时间:2024/06/06 01:38

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是合法的。

AC代码:

其实就是个水题,当时考虑的情况太少,以至于错了很多次

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){int T;int i,j,k,l,p;string s;while(cin>>T){while(T--){cin>>s;j=k=l=p=0;for(i=0;i<s.size();i++){if(s[0]=='.'||s[s.size()-1]=='.'){printf("No\n");break;}if(s[i]=='.'&&s[i+1]=='.'){printf("No\n");break;}if(s[i]!='.'){if(s[i]>='0'&&s[i]<='9'){l++;k=k*10+(s[i]-'0');}else {printf("No\n");break;}}else {j++;if(k>255||k<0||l>3){printf("No\n");break;break;}else{k=l=0;}}}if(i==s.size()){if(j!=3)printf("No\n");else printf("Yes\n");}}}} 


0 0
原创粉丝点击