Cho một chuỗi chỉ chứa chữ số. Nhiệm vụ kiểm tra tất cả tổ hợp địa chỉ IP hợp lệ.
Đầu tiên kiểm tra độ dài chuỗi rồi tách bằng ".". Sau đó kiểm tra các tổ hợp khác nhau của ".".
Ví dụ
Input: "255011123222" It's not a valid IP address. Input: 255011345890 Valid IP address is 255.011.123.222
Thuật toán
Bước 1: Kiểm tra độ dài chuỗi. Bước 2: Tách chuỗi bằng ".". Đặt 3 dấu chấm trong chuỗi. W, X, Y, Z là số 0-255, không được có tiền tố 0 trừ khi là 0. Bước 3: Tạo các tổ hợp khác nhau. Bước 4: Kiểm tra tính hợp lệ của tổ hợp.
Ví dụ mã
# Mã Python kiểm tra IP hợp lệ có thể
# Hàm kiểm tra chữ số IP có hợp lệ
def ipvalid(ip):
# Tách bằng "."
ip = ip.split(".")
# Kiểm tra corner cases
for i in ip:
if len(i) > 3 or int(i) < 0 or int(i) > 255:
return False
if len(i) > 1 and int(i) == 0:
return False
if len(i) > 1 and int(i) != 0 and i[0] == '0':
return False
return True
# Hàm chuyển chuỗi thành IP
def ipconvert(A):
con = len(A)
# Kiểm tra kích thước chuỗi
if con > 12:
return []
newip = A
l = []
# Tạo các tổ hợp khác nhau
for i in range(1, con - 2):
for j in range(i + 1, con - 1):
for k in range(j + 1, con):
newip = newip[:k] + "." + newip[k:]
newip = newip[:j] + "." + newip[j:]
newip = newip[:i] + "." + newip[i:]
# Kiểm tra tính hợp lệ
if ipvalid(newip):
l.append(newip)
newip = A
return l
# Driver code
A = input("Enter IP address")
print(ipconvert(A))
Kết quả
Enter IP address25525522134 ['255.255.22.134', '255.255.221.34']