Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
110993 李树强 复原 IP 地址 C++ 通过 100 0 MS 252 KB 1053 2023-11-18 08:54:47

Tests(3/3):


#include<iostream> #include<string> using namespace std; string n; int res[4]; bool h(string s){ int numb[4]; numb[0] = 0; numb[1] = 0; numb[2] = 0; numb[3] = 0; int idx = 0; for(int i = 0; i < s.size(); i++){ if(s[i] == '0' && (i != 0 && i != s.size() - 1 && (s[i-1] == '.' && s[i+1] != '.'))) return false; if(s[i] >= '0' && s[i] <= '9'){ numb[idx] = (s[i] - '0') + numb[idx] * 10; } else if(s[i] == '.'){ idx++; if(idx >= 4) return false; } else return false; } for(int i = 0; i < 4; i++) if(numb[i] > 255) return false; return true; } void f(int x = 1){ if(x == 4){ string s; int tmp = 0; s += n.substr(0, res[1]); s += '.'; s += n.substr(res[1], res[2] - res[1]); s += '.'; s += n.substr(res[2], res[3] - res[2]); s += '.'; s += n.substr(res[3]); if(h(s)) cout << s << endl; return; } for(int i = res[x-1] + 1; i < n.size(); i++){ res[x] = i; f(x + 1); } } int main(){ cin >> n; if(n.size() > 12) return 0; f(1); return 0; }


测评信息: