题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include <iostream> #include <string> #include <vector> using namespace std; int st2i(string s){ int x=0; for(char ch:s){ x=10*x+ch-'0'; } return x; } int main() { string s; vector<string> table; cin >> s; int j=0; for(int i=0;i<=s.size();++i){ if(s[i]=='.'||i==s.size()){ if(j<i){ table.push_back(s.substr(j,i-j)); j=i+1; } } } if(table.size()!=4){ cout << "NO"; return 0; } for(int i=0;i<table.size();++i){ if(table[i][0]=='0'&&table[i].size()>1){ cout << "NO"; return 0; } int x=st2i(table[i]); if(!(x<=255&&x>=0)){ cout << "NO"; return 0; } } cout << "YES"; } // 64 位输出请用 printf("%lld")