একটি স্ট্রিং দেওয়া আছে। স্ট্রিং শুধু ডিজিট ধারণ করে। আমাদের কাজ হলো সকল সম্ভাব্য বৈধ IP ঠিকানা কম্বিনেশন চেক করা।
এখানে প্রথমে স্ট্রিং-এর দৈর্ঘ্য চেক করা হয়েছে তারপর "." দিয়ে স্প্লিট করা হয়েছে। তারপর "."-এর বিভিন্ন কম্বিনেশন চেক করা হয়েছে।
উদাহরণ
Input : "255011123222" It's not a valid IP address. Input : 255011345890 Valid IP address is 255.011.123.222
অ্যালগরিদম
ধাপ ১: প্রথমে স্ট্রিং-এর দৈর্ঘ্য চেক করুন। ধাপ ২: স্ট্রিংকে "." দিয়ে স্প্লিট করুন। আমরা দেওয়া স্ট্রিং-এ ৩টি ডট রাখব। W, X, Y, এবং Z হলো ০-২৫৫ পর্যন্ত সংখ্যা, সংখ্যাগুলো ০-প্রিফিক্সড (0 prefixed) হতে পারবে না যদি না সেগুলো ০ হয়। ধাপ ৩: বিভিন্ন কম্বিনেশন জেনারেট করুন। ধাপ ৪: কম্বিনেশনটির বৈধতা চেক করুন।
উদাহরণ কোড
# পাইথন কোড: বৈধ সম্ভাব্য 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']