কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রাম: দেওয়া স্ট্রিং থেকে সকল সম্ভাব্য বৈধ IP ঠিকানা জেনারেট করা


একটি স্ট্রিং দেওয়া আছে। স্ট্রিং শুধু ডিজিট ধারণ করে। আমাদের কাজ হলো সকল সম্ভাব্য বৈধ 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'] 

  1. পাইথনে সব সম্ভাব্য বৈধ পথ থেকে সর্বোচ্চ স্কোর বের করার প্রোগ্রাম

  2. দেওয়া স্ট্রিংয়ের সকল পারমিউটেশন প্রিন্ট করার পাইথন প্রোগ্রাম

  3. পাইথনে দেওয়া স্ট্রিং থেকে সব ডুপ্লিকেট সরিয়ে ফেলার প্রোগ্রাম

  4. পাইথনে স্ট্রিংয়ের সকল সম্ভাব্য পারমুটেশন বের করা