题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
//容易遗漏的点在于数字串中有非法字符或字符'0'后跟字符的情况
//还有就是IP只有三个
#include <iostream>
#include <sstream>
#include <string>
#include <deque>
using namespace std;
int main(){
string inputstr;
cin >> inputstr;
inputstr+=".";
string tmp;
int count = 0;
for(int i = 0;i<inputstr.size();++i){
if(tmp == "" && ((!isdigit(inputstr[i])) || (inputstr[i] == '0' && inputstr[i+1] != '.'))){
cout << "NO" << endl;
return 0;
}
if(inputstr[i] == '.'){
if(stoi(tmp)<=255 && stoi(tmp)>= 0){
tmp = "";
++count;
continue;
}
else{
cout << "NO" << endl;
return 0;
}
}
tmp += inputstr[i];
}
if(count == 4)cout << "YES" << endl;
else cout << "NO" << endl;
return 0;
}