题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include <iostream> using namespace std; #include<sstream> #include<vector> bool isValid(string ip){ stringstream ss(ip); string segment; vector<string> parts; while(getline(ss,segment,'.')){ if(segment.empty()) return false; parts.push_back(segment); } if(parts.size()!=4) return false; //4部分 for(string part :parts){ if(part=="0") return true; //单独一个0的情况是合法的 if(part[0]=='0') return false; //前导零的情况 if(stoi(part)<0||stoi(part)>255) return false; //范围 for(char c:part){ //非数字情况 if(!isdigit(c)) return false; } } return true; } int main() { string ip; while (getline(cin,ip)) { if(isValid(ip)){ cout<<"YES"<<endl; }else{ cout<<"NO"<<endl; } } return 0; } // 64 位输出请用 printf("%lld")