Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 468. Validate IP Address
題目:

解答:
class Solution {
public:
string validIPAddress(string queryIP) {
int cnt = 0;
string s;
stringstream ss(queryIP);
const string nei = "Neither";
if (count(queryIP.begin(), queryIP.end(), '.') == 3) {
while (getline(ss, s, '.')) {
if (++cnt > 4) {
return nei;
}
if (s.empty() || s.size() > 1 && s[0] == '0' || s.size() > 3) {
return nei;
}
for (char c : s) {
if (!isdigit(c)) {
return nei;
}
}
int n = stoi(s);
if (n < 0 || n > 255) {
return nei;
}
}
return cnt == 4 ? "IPv4" : nei;
}
if (count(queryIP.begin(), queryIP.end(), ':') == 7) {
while (getline(ss, s, ':')) {
if (++cnt > 8) {
return nei;
}
if (s.empty() || s.size() > 4) {
return nei;
}
for (char c : s) {
if (!isxdigit(c)) {
return nei;
}
}
}
return cnt == 8 ? "IPv6" : nei;
}
return nei;
}
};