ধরুন আমাদের কাছে একটি স্ট্রিং 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