#include <cctype>
#include <iostream>
#include<vector>
using namespace std;
int main() {
string s;
vector<string>vec;
int count, j = 0;
while (cin >> s) { // 注意 while 处理多个 case
for (int i = 0; i < s.size(); i++) {
//如果输入的符号既不是数字也不是.
if (!isdigit(s[i]) && s[i] != '.') {
cout << "NO";
return 0;
}
//添加ip的每部分到数组中
if (s[i] == '.' && i > j) {
vec.push_back(s.substr(j, i - j));
j = i + 1;
count++;
}
}
//添加ip的最后一部分到数组中
if (j <= s.size() - 1) {
vec.push_back(s.substr(j));
}
//如果数组长度不是4
if (vec.size() != 4) {
cout << "NO";
return 0;
}
//如果数组的某一位不在ip合法数字范围内
for (auto i : vec) {
if ((stoi(i) < 0 || stoi(i) > 255) || (i.size() > 1 && i[0] == '0')) {
cout << "NO";
return 0;
}
}
cout << "YES";
}
}
// 64 位输出请用 printf("%lld")
笨方法

京公网安备 11010502036488号