ধরুন আমাদের কাছে একটি স্ট্রিং s আছে, একটি পাসওয়ার্ড উপস্থাপন করে, আমাদের পাসওয়ার্ডের মানদণ্ড পরীক্ষা করতে হবে৷ কিছু নিয়ম আছে, যা আমাদের অনুসরণ করতে হবে −
- পাসওয়ার্ডের দৈর্ঘ্য হবে কমপক্ষে ৮ অক্ষর এবং সর্বোচ্চ ২০টি অক্ষর।
- পাসওয়ার্ডে অন্তত একটি সংখ্যা থাকে
- পাসওয়ার্ডে অন্তত একটি ছোট হাতের অক্ষর এবং একটি বড় হাতের অক্ষর রয়েছে
- পাসওয়ার্ডে অন্তত একটি বিশেষ অক্ষর থাকে যেমন !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~
- পাসওয়ার্ডে ট্যাব বা নতুন লাইনের মতো অন্য কোনো অক্ষর থাকে না।
সুতরাং, ইনপুট যদি "@bCd12#4" এর মত হয়, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- a:=0, b:=0, c:=0, d:=0
- যদি পাসওয়ার্ডের সাইজ <8 বা পাসওয়ার্ডের সাইজ> 20 হয়, তাহলে
- মিথ্যে ফেরত দিন
- প্রতিটি অক্ষরের জন্য i পাসওয়ার্ডে, করুন
- যদি i বড় হাতের অক্ষর হয়, তাহলে
- a :=a + 1
- অন্যথায় যখন আমি ছোট হাতের অক্ষর, তারপর
- b :=b + 1
- অন্যথায় যখন আমি এই বিশেষ অক্ষরের সেটে '"!"#^modAND\'() *+,- ./:;<=>?@[\\]XOR_`{OR}~"', তখন
- c :=c + 1
- অন্যথায় যখন আমি একটি অঙ্ক, তারপর
- d :=d + 1
- যদি i বড় হাতের অক্ষর হয়, তাহলে
- যদি a>=1 এবং b>=1 এবং c>=1 এবং d>=1 এবং a+b+c+d পাসওয়ার্ডের আকারের সমান হয়, তাহলে
- সত্য ফেরান
- অন্যথায়,
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, password): a=0 b=0 c=0 d=0 if len(password)<8 or len(password)>20: return False for i in password: if i.isupper(): a+=1 elif i.islower(): b+=1 elif i in '"!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~"': c+=1 elif i.isdigit(): d+=1 if a>=1 and b>=1 and c>=1 and d>=1 and a+b+c+d==len(password): return True else: return False s = "@bCd12#4" ob = Solution() print(ob.solve(s))
ইনপুট
"@bCd12#4"
আউটপুট
True