स्ट्रिंग दी गई है। स्ट्रिंग में केवल डिजिट्स हैं। हमारा कार्य सभी संभावित वैलिड IP एड्रेस कॉम्बिनेशन्स चेक करना है।
यहां पहले हम स्ट्रिंग की लंबाई चेक करते हैं फिर "." से स्प्लिट करते हैं। फिर हम "." के विभिन्न कॉम्बिनेशन्स चेक करते हैं।
उदाहरण
Input: "255011123222" It's not a valid IP address. Input: 255011345890 Valid IP address is 255.011.123.222
एल्गोरिदम
चरण 1: पहले स्ट्रिंग की लंबाई चेक करें। चरण 2: स्ट्रिंग को "." से स्प्लिट करें। हम दिए गए स्ट्रिंग में 3 डॉट्स रखेंगे। W, X, Y, और Z 0-255 से नंबर हैं, नंबर 0-प्रीफिक्स्ड नहीं हो सकते जब तक कि वे 0 न हों। चरण 3: विभिन्न कॉम्बिनेशन्स जनरेट करें। चरण 4: कॉम्बिनेशन की वैधता चेक करें।
उदाहरण कोड
# पायथन कोड: वैलिड संभावित IP चेक करने के लिए
# फंक्शन चेक करता है कि IP डिजिट्स वैलिड हैं या नहीं
def ipvalid(ip):
# "." द्वारा स्प्लिटिंग
ip = ip.split(".")
# कॉर्नर केसेस चेक करना
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
# फंक्शन स्ट्रिंग को IP एड्रेस में कन्वर्ट करता है
def ipconvert(A):
con = len(A)
# स्ट्रिंग साइज चेक करें
if con > 12:
return []
newip = A
l = []
# विभिन्न कॉम्बिनेशन्स जनरेट करना
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:]
# कॉम्बिनेशन की वैधता चेक करें
if ipvalid(newip):
l.append(newip)
newip = A
return l
# ड्राइवर कोड
A = input("Enter IP address")
print(ipconvert(A))आउटपुट
Enter IP address25525522134 ['255.255.22.134', '255.255.221.34']