কখনও কখনও যখন আমি একটি আইপিভি 4 ঠিকানা টাইপ করি তখন আমি সমস্ত নম্বর ঠিক পাই তবে আমি এক বা একাধিক পিরিয়ড টাইপ করতে ভুলে যাই। আমি এমন একটি প্রোগ্রাম (বা ফাংশন) রাখতে চাই যা আমার ভাঙা IPv4 ঠিকানা নেয় এবং হারিয়ে যাওয়া সময়ের সমস্ত সম্ভাব্য বৈধ স্থান নির্ধারণ করে।
ইনপুট
ইনপুটটি সর্বদা একটি স্ট্রিং থাকবে যা একটি বৈধ IPv4 ঠিকানার রূপান্তর (নীচে বিবরণ দেখুন)। এটি সর্বদা এক বা একাধিক পিরিয়ড অক্ষরকে বাদ দিয়ে কেবল রূপান্তরিত হবে।
আপনার জমা দেওয়ার জন্য এই ফর্ম্যাটটির বাইরে ইনপুটগুলি পরিচালনা করতে হবে না।
আউটপুট
ইনপুটটিতে পিরিয়ড অক্ষর সন্নিবেশ করে ইনপুট থেকে তৈরি করা যেতে পারে এমন সমস্ত বৈধ আইপিভি 4 ঠিকানা উপস্থাপন করে এমন স্ট্রিংগুলির কোনও নির্দিষ্ট ক্রম বা বিন্যাসে কোনও সংগ্রহ বা তালিকা।
- আউটপুটটি কোনও ভাষা-স্থানীয় তালিকা বা অন্য অর্ডারযুক্ত বা অর্ডারযুক্ত সংগ্রহের ধরণ হতে পারে।
- বিকল্পভাবে, এটি কিছু পরিষ্কার উপায়ে ডিলিমেড IPv4 ঠিকানার স্ট্রিং ক্রম হতে পারে।
- আপনি যদি আপনার স্ট্রিংটি সীমিত করতে একক-অক্ষর ডিলিমিটার ব্যবহার করেন তবে পিরিয়ড এবং অঙ্কগুলি সেই একক-অক্ষর ডিলিমিটার হিসাবে অনুমোদিত নয়। আমি বুঝতে পারি যে সংখ্যার বিপরীতে, ডিলিমিটার হিসাবে পিরিয়ডগুলি অস্পষ্ট নয় (যেহেতু প্রতিটি চতুর্থ সময়কালে অবিচ্ছিন্নভাবে একটি সীমান্তকারী হবে) তবে পাঠযোগ্যতার জন্য আমি এটিকে অস্বীকার করছি allow
IPv4 ঠিকানার ফর্ম্যাট
যদিও আইপিভি 4 অ্যাড্রেসগুলি চারটি বাইনারি অক্টেটের কেবলমাত্র একটি ক্রম, এই চ্যালেঞ্জটি একটি সীমাবদ্ধ বিন্দুযুক্ত দশমিক ফর্ম্যাট ব্যবহার করে।
- একটি আইপিভি 4 ঠিকানা একটি চার দশমিক মান যা তিন পিরিয়ড দ্বারা পৃথক হয়।
- চার মূল্যবোধের প্রতিটি সীমার মধ্যে হয়
0
করতে255
সমেত। - শীর্ষস্থানীয় শূন্যগুলি কোনও সংখ্যার মানেই অনুমোদিত নয় । (স্বতন্ত্র এক চরিত্র
0
অনুমতি দেওয়া হয়; অন্য কোন সংখ্যা একটি শূন্য থেকে শুরু করে নয়:052
,00
, ইত্যাদি)
পরীক্ষার মামলা
ইনপুটটি প্রথম লাইনে রয়েছে, দ্বিতীয় লাইনে আউটপুট রয়েছে (এখানে, কোটা দ্বারা বিভক্ত কোটযুক্ত স্ট্রিংগুলির কমা-বিচ্ছিন্ন তালিকা হিসাবে কাঠামোযুক্ত, বেষ্টিত [
]
, তবে আপনি উপরে বর্ণিত কোনও যুক্তিসঙ্গত বিন্যাস বা কাঠামো ব্যবহার করতে পারেন)। কিছু উদাহরণের একটি নির্দিষ্ট নিয়মের প্রয়োগকে হাইলাইট করার জন্য তৃতীয় লাইনে নোট রয়েছে।
192.168.1234
["192.168.1.234", "192.168.12.34", "192.168.123.4"]
192.1681234
["192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"]
(Note: 192.1681.2.34 (etc.) is illegal because 1681 is greater than 255)
1921681.234
["19.216.81.234", "192.16.81.234", "192.168.1.234"]
1921681234
["19.216.81.234", "192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"]
192.168.1204
["192.168.1.204", "192.168.120.4"]
(Note: 192.168.12.04 is illegal because of leading zero)
192.168.123
["1.92.168.123", "19.2.168.123", "192.1.68.123", "192.16.8.123", "192.168.1.23", "192.168.12.3"]
192.168.256
["192.168.2.56", "192.168.25.6"]
(Note: Any combination that would leave 256 intact is illegal)
120345
["1.20.3.45", "1.20.34.5", "1.203.4.5", "12.0.3.45", "12.0.34.5", "120.3.4.5"]
(Note: 12.03.4.5 (etc.) is illegal due to leading zero.)
012345
["0.1.23.45", "0.1.234.5", "0.12.3.45", "0.12.34.5", "0.123.4.5"]
(Note: the first segment must be 0, because `01` or `012` would be illegal.)
000123
["0.0.0.123"]
(আমি এই উদাহরণগুলি হাতে হাতে তৈরি করেছি, সুতরাং দয়া করে আপনার যে কোনও ভুলের জন্য আমাকে সতর্ক করুন))