Skip to content

Commit fde7591

Browse files
committed
Add solution #468
1 parent e04d273 commit fde7591

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@
375375
464|[Can I Win](./0464-can-i-win.js)|Medium|
376376
466|[Count The Repetitions](./0466-count-the-repetitions.js)|Hard|
377377
467|[Unique Substrings in Wraparound String](./0467-unique-substrings-in-wraparound-string.js)|Medium|
378+
468|[Validate IP Address](./0468-validate-ip-address.js)|Medium|
378379
472|[Concatenated Words](./0472-concatenated-words.js)|Hard|
379380
476|[Number Complement](./0476-number-complement.js)|Easy|
380381
482|[License Key Formatting](./0482-license-key-formatting.js)|Easy|

solutions/0468-validate-ip-address.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* 468. Validate IP Address
3+
* https://leetcode.com/problems/validate-ip-address/
4+
* Difficulty: Medium
5+
*
6+
* Given a string queryIP, return "IPv4" if IP is a valid IPv4 address, "IPv6" if IP is a valid
7+
* IPv6 address or "Neither" if IP is not a correct IP of any type.
8+
*
9+
* A valid IPv4 address is an IP in the form "x1.x2.x3.x4" where 0 <= xi <= 255 and xi cannot
10+
* contain leading zeros. For example, "192.168.1.1" and "192.168.1.0" are valid IPv4 addresses
11+
* while "192.168.01.1", "192.168.1.00", and "[email protected]" are invalid IPv4 addresses.
12+
*
13+
* A valid IPv6 address is an IP in the form "x1:x2:x3:x4:x5:x6:x7:x8" where:
14+
* - 1 <= xi.length <= 4
15+
* - xi is a hexadecimal string which may contain digits, lowercase English letter ('a' to 'f')
16+
* and upper-case English letters ('A' to 'F').
17+
* - Leading zeros are allowed in xi.
18+
*
19+
* For example, "2001:0db8:85a3:0000:0000:8a2e:0370:7334" and "2001:db8:85a3:0:0:8A2E:0370:7334"
20+
* are valid IPv6 addresses, while "2001:0db8:85a3::8A2E:037j:7334" and
21+
* "02001:0db8:85a3:0000:0000:8a2e:0370:7334" are invalid IPv6 addresses.
22+
*/
23+
24+
/**
25+
* @param {string} queryIP
26+
* @return {string}
27+
*/
28+
var validIPAddress = function(queryIP) {
29+
const ipv4 = /^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/;
30+
const ipv6 = /^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}$/;
31+
32+
return ipv4.test(queryIP) ? 'IPv4' : ipv6.test(queryIP) ? 'IPv6' : 'Neither';
33+
};

0 commit comments

Comments
 (0)