题解 | #合法IP#
合法IP
http://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include <bits/stdc++.h> using namespace std; int main() { string str; cin>>str; regex reg("[^.]+"); int iCount = 0; for(sregex_iterator i(str.begin(),str.end(),reg),end_i; i!=end_i; ++i) { string stp = i->str(); if(stp.find('+') != -1 || stp.find('-') != -1 || (stp.length()!=1 && stp[0] == '0')) { //有+ - 有开头无效0 cout << "NO"; return 0; } stringstream ss; int itp; ss<<stp; ss>>itp; if(itp>255) { cout << "NO"; return 0; } iCount++; } if(iCount == 4) cout << "YES"; else cout << "NO"; return 0; }