/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 验证IP地址
* @param IP string字符串 一个IP地址字符串
* @return string字符串
*/
/**
* 解法一:正则
* 时间复杂度:O(n),正则默认 O(n)
* 空间复杂度:O(n)
*/
export function solve(IP: string): string {
const arrIPv4: any[] = IP.split('.')
const arrIPv6: any[] = IP.split(':')
const ipv4Reg = /^0$|^[1-9]\d{0,2}$/
const ipv6Reg = /^[0-9a-fA-F]{1,4}$/
if (arrIPv4.length === 4 && arrIPv4.every(item => ipv4Reg.test(item) && item < 256)) {
return 'IPv4'
} else if (arrIPv6.length === 8 && arrIPv6.every(item => ipv6Reg.test(item))) {
return 'IPv6'
} else {
return 'Neither'
}
}