题解 | #合法IP#
合法IP
http://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include<iostream>
using namespace std;
int main()
{
string a;
while(cin>>a)
{
string b[10];
int c=0,f=0;
for(int i=0;i<a.length();i++)
{
if(a[i]!='.')
{
b[c]+=a[i];
}
else if(a[i]=='.')
{
c++;
}
}
if(c!=3)
{
cout<<"NO";
break;
}
for(int i=0;i<4;i++)
{
if(b[i]=="\0"||(b[i][0]=='0'&&b[i].length()!=1))
{
cout<<"NO";
f=1;
break;
}
}
if(f==1)
{
break;
}
for(int i=0;i<4;i++)
{
int e=0;
for(int j=0;j<b[i].length();j++)
{
if(b[i][j]>'9'||b[i][j]<'0')
{
cout<<"NO";
f=1;
break;
}
else
{
e=e*10+b[i][j]-'0';
}
}
if(f==1)
{
break;
}
if(e<0||e>255)
{
f=1;
cout<<"NO";
break;
}
}
if(f==1)
{
break;
}
else if(f==0)
{
cout<<"YES";
}
}
return(0);
}
using namespace std;
int main()
{
string a;
while(cin>>a)
{
string b[10];
int c=0,f=0;
for(int i=0;i<a.length();i++)
{
if(a[i]!='.')
{
b[c]+=a[i];
}
else if(a[i]=='.')
{
c++;
}
}
if(c!=3)
{
cout<<"NO";
break;
}
for(int i=0;i<4;i++)
{
if(b[i]=="\0"||(b[i][0]=='0'&&b[i].length()!=1))
{
cout<<"NO";
f=1;
break;
}
}
if(f==1)
{
break;
}
for(int i=0;i<4;i++)
{
int e=0;
for(int j=0;j<b[i].length();j++)
{
if(b[i][j]>'9'||b[i][j]<'0')
{
cout<<"NO";
f=1;
break;
}
else
{
e=e*10+b[i][j]-'0';
}
}
if(f==1)
{
break;
}
if(e<0||e>255)
{
f=1;
cout<<"NO";
break;
}
}
if(f==1)
{
break;
}
else if(f==0)
{
cout<<"YES";
}
}
return(0);
}