মাঝারি ধরণের কঠিন প্রোগ্রামিং প্রবলেমস : পর্ব-১ এর সল্যুশন [পাসওয়ার্ড চেকার]

প্রবলেম:

ইনপুট হিসেবে আপনাকে ২-২০ ক্যারেক্টের এর একটি স্ট্রিং দেওয়া হবে। আপনাকে যা চেক করতে হবে তা নিম্নরূপ:

(ক) স্ট্রিং এর লেন্থ ৫-১২ ক্যারেক্টর কিনা। হলে ঠিক আছে, না হলে ভুল।
(খ) স্ট্রিং এ লোয়ারকেস লেটার এবং ০-৯ পর্যন্ত নাম্বার ছাড়া আর কিছু আছে কিনা। যদি না থাকে তাহলে ঠিক আছে, থাকলে ভুল।
(গ) স্ট্রিং এ লোয়ারকেস লেটার এবং ০-৯ পর্যন্ত নাম্বার এই ২ ধরণের ক্যারেক্টর এর প্রত্যেকেরিই অন্তত একটি করে থাকতে হবে। যদি না থাকে তাহলে ভুল, অন্যথায় ঠিক।
(ঘ) স্ট্রিংটিতে পাশাপাশি একিই ক্যারেক্টর সিকুয়েন্স আছে কিনা। যদি থাকে তাহলে ভুল, না থাকলে ঠিক আছে।


যদি ইনপুট ভুল হয় তাহলে কি কারণে ভুল তা বলতে হবে। উদাহরণ:

cakeshop - ভুল কারণ নাম্বার নাই।

ab34 - ভুল কারণ সর্বনিম্ন ৫ টি ক্যারেক্টরও নেই।

A567xcz - ভুল কারণ লোয়ার কেস লেটার এবং নাম্বার এর বাইরের ক্যারেক্টর আছে।

9apanpanle8 - ভুল কারণ দুটি 'pan' পাশাপাশি আছে।

03bananas - ভুল কারণ দুটি 'an' পাশাপাশি আছে।

123xy123 - ঠিক

সমাধান: সমাধানটি PHP তে করা। এখানে আমরা $password নামক ভ্যারিয়েবলের মধ্যে আমাদের টেস্টিং পাসওয়ার্ডটিকে রেখেছি। অতপর,

১ম শর্ত, “পাসওয়ার্ডে ৫-১২ টি ক্যারেক্টর থাকতে হবে”, চেক করেছি $password এর লেন্থ চেক করার মাধ্যমে। এরর পেলে সেটিকে $errors নামক এ্যারেতে রেখেছি।

২য় শর্ত, “লোয়ারকেস লেটার আর ০-৯ পর্যন্ত ডিজিট ছাড়া অন্য কিছু থাকা যাবে না”, চেক করেছি রেজএক্স এর মাধ্যমে। রেজএক্স এ আমরা লিখেছি [^a-z 0-9]. এখানে ^ চিহ্নটি বোঝায় যে থার্ড ব্রাকেটে যা আছে তার বাইরে অন্য কোন ক্যারেক্টর। অর্থাৎ রেজএক্স টি চেক করে যে a-z অথবা 0-9 এর বাইরে কোন ক্যারেক্টর আছে কিনা।

৩য় শর্ত, “লোয়ারকেস লেটার এবং ০-৯ পর্যন্ত নাম্বার এই ২ ধরণের ক্যারেক্টর এর প্রত্যেকেরিই অন্তত একটি করে থাকতে হবে”, চেক করেছি দুই ধাপে দুটি রেজএক্স এর মাধ্যমে। রেজএক্স গুলোর কাজ আশা করি এখন আপনারা বুঝতে পারছেন।

৪র্থ শর্ত, “পাশাপাশি একিই ক্যারেক্টর সিকুয়েন্স থাকা যাবে না”, চেক করেছি একটি লুপ ও একটি ইনার লুপের মাধ্যমে। প্রসেসটি বর্ণনা করতে গেলে বেশ খানিকটা লিখতে হবে। আপনাদের ঠিক কোথায় বুঝতে সমস্যা হচ্ছে তা জানালে আমি হেল্প করতে পারি।

সম্পূর্ণ  কোড : এই লিংকে ক্লিক করে ডাউনলোড করুন

আপনারা সরাসরি প্রোগ্রামটি ট্রাই করতে চাইলে এই লিংকে ক্লিক করুন। পাসওয়ার্ড চেকার - ক্লিক হেয়ার

Author: Tanmay Chakrabarty

Tanmay Chakrabarty is a former CSE student, currently working as a Senior Software Engineer with 5+ years of experience in the field of Web Application development in PHP+MySQL platform with strong skills in Javascript, JQuery, JQuery UI and CSS. He tries to write notes every week but fails due to heavy loads of duty.

Recommended Recommends

Comments

Contact Us