일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Git
- 편스토랑
- 캐치카페
- 맥북
- leetcode
- hackerrank
- dacon
- 편스토랑 우승상품
- Real or Not? NLP with Disaster Tweets
- ubuntu
- 우분투
- gs25
- 코로나19
- 프로그래머스
- 금융문자분석경진대회
- ChatGPT
- Docker
- 백준
- github
- 프로그래머스 파이썬
- 데이콘
- AI 경진대회
- 더현대서울 맛집
- programmers
- 파이썬
- PYTHON
- Baekjoon
- 자연어처리
- Kaggle
- SW Expert Academy
- Today
- Total
솜씨좋은장씨
[leetCode] 468. Validate IP Address (Python) 본문
Given a string IP, return "IPv4" if IP is a valid IPv4 address, "IPv6" if IP is a valid IPv6 address or "Neither" if IP is not a correct IP of any type.
A valid IPv4 address is an IP in the form "x1.x2.x3.x4" where 0 <= xi <= 255 and xi cannot contain leading zeros. For example, "192.168.1.1" and "192.168.1.0" are valid IPv4 addresses but "192.168.01.1", while "192.168.1.00" and "192.168@1.1" are invalid IPv4 addresses.
A valid IPv6 address is an IP in the form "x1:x2:x3:x4:x5:x6:x7:x8" where:
- 1 <= xi.length <= 4
- xi is a hexadecimal string which may contain digits, lower-case English letter ('a' to 'f') and upper-case English letters ('A' to 'F').
- Leading zeros are allowed in xi.
For example, "2001:0db8:85a3:0000:0000:8a2e:0370:7334" and "2001:db8:85a3:0:0:8A2E:0370:7334" are valid IPv6 addresses, while "2001:0db8:85a3::8A2E:037j:7334" and "02001:0db8:85a3:0000:0000:8a2e:0370:7334" are invalid IPv6 addresses.
Example 1:
Input: IP = "172.16.254.1"
Output: "IPv4"
Explanation: This is a valid IPv4 address, return "IPv4".
Example 2:
Input: IP = "2001:0db8:85a3:0:0:8A2E:0370:7334"
Output: "IPv6"
Explanation: This is a valid IPv6 address, return "IPv6".
Example 3:
Input: IP = "256.256.256.256"
Output: "Neither"
Explanation: This is neither a IPv4 address nor a IPv6 address.
Example 4:
Input: IP = "2001:0db8:85a3:0:0:8A2E:0370:7334:"
Output: "Neither"
Example 5:
Input: IP = "1e1.4.5.6"
Output: "Neither"
Constraints:
- IP consists only of English letters, digits and the characters '.' and ':'.
Solution
class Solution:
def validIPAddress(self, IP: str) -> str:
def checkIPv4(IP):
ip_split = IP.split(".")
for ip in ip_split:
if len(ip) == 0 or len(ip) > 3 or ip.isdigit() == False or (ip[0] == '0' and len(ip) != 1) or int(ip) > 255:
return "Neither"
return 'IPv4'
def checkIPv6(IP):
ip_split = IP.split(":")
for ip in ip_split:
if len(ip) == 0 or len(ip) > 4:
return "Neither"
for c in ip:
if c.lower() not in '0123456789abcdef':
return "Neither"
return "IPv6"
if len(IP.split("."))-1 == 3:
return checkIPv4(IP)
elif len(IP.split(":"))-1 == 7:
return checkIPv6(IP)
return "Neither"
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[leetCode] 83. Remove Duplicates from Sorted List (Python) (0) | 2020.12.01 |
---|---|
[leetCode] 148. Sort List (Python) (0) | 2020.11.29 |
[leetCode] 338. Counting Bits (Pyhton) (0) | 2020.11.21 |
[leetCode] 313. Super Ugly Number (Python) (0) | 2020.11.20 |
[leetCode] 165. Compare Version Numbers (Python) (0) | 2020.11.19 |