题解 | #验证IP地址#
验证IP地址
https://www.nowcoder.com/practice/55fb3c68d08d46119f76ae2df7566880
package main import ( "strconv" "strings" ) /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 验证IP地址 * @param IP string字符串 一个IP地址字符串 * @return string字符串 */ func solve(IP string) string { // write code here if strings.Contains(IP, ".") { if validateIPv4(IP) { return "IPv4" } } else if strings.Contains(IP, ":") { if validateIPv6(IP) { return "IPv6" } } return "Neither" } func validateIPv4(IP string) bool { parts := strings.Split(IP, ".") if len(parts) != 4 { return false } for _, part := range parts { if len(part) == 0 || (len(part) > 1 && part[0] == '0') || len(part) > 3 { return false } num, err := strconv.Atoi(part) if err != nil || num < 0 || num > 255 { return false } } return true } func validateIPv6(IP string) bool { parts := strings.Split(IP, ":") if len(parts) != 8 { return false } for _, part := range parts { if len(part) == 0 || len(part) > 4 { return false } _, err := strconv.ParseUint(part, 16, 16) if err != nil { return false } } return true }