题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string s;
cin>>s;
if(s[0] == '.'){
cout << "NO"<<endl;
return 0;
}
int count =0;
int cur_s = 0;
for (int i=0; i<s.size(); i++) {
if (s[i] == '.' && s[i+1] !='.') {
string t = s.substr(cur_s,i-cur_s);
count = count + 1;
cur_s = i+1;
if(t.size() == 0 || stoi(t)> 255) {
cout << "NO"<<endl;
return 0;
}
if(t.size()>1 && t[0]=='0'){
cout << "NO"<<endl;
return 0;
}
}
else if (s[i]>='0' && s[i]<='9') {
continue;
}
else {
cout <<"NO"<<endl;
return 0;
}
}
string t = s.substr(cur_s, s.size()- cur_s);
if(t.size() == 0 || stoi(t)> 255){
cout << "NO"<<endl;
return 0;
}else if(t.size()>1 && t[0] == '0'){
cout << "NO"<<endl;
return 0;
}else {
count = count + 1;
}
if(count == 4){
cout << "YES" <<endl;
return 0;
}else {
cout <<"NO"<<endl;
return 0;
}
}
// 64 位输出请用 printf("%lld")
三奇智元机器人科技有限公司公司福利 97人发布