题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int main() {
string s;
while (cin >> s) {
bool ip = true;
int count = 0;
for (int i = 0; i < s.size(); i++) {
int num = 0;
string temp = "";
while (s[i] != '.' && i < s.size()) {
temp = temp + s[i];
i++;
}
count++;
//判断是否出现0开头的数字(不是0),或者两个点连在一起的情况。
if ((temp[0] == '0' && temp.size() > 1) || temp.size() == 0
|| temp[0] == '+') {
ip = false;
break;
}
num = stoi(temp);
if (num < 0 || num > 255) {
ip = false;
break;
}
}
if (count != 4) ip = false; //判断是不是分隔为4个数字
if (ip) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
腾讯成长空间 5981人发布