मान लीजिए हमारे पास एक स्ट्रिंग s है, जो एक पासवर्ड को दर्शाती है, हमें पासवर्ड मानदंडों की जांच करनी है। कुछ नियम हैं जिनका हमें पालन करना होगा:
- पासवर्ड की लंबाई कम से कम 8 वर्ण और अधिकतम 20 वर्ण होनी चाहिए।
- पासवर्ड में कम से कम एक अंक होना चाहिए
- पासवर्ड में कम से कम एक लोअरकेस और एक अपरकेस वर्ण होना चाहिए
- पासवर्ड में कम से कम एक विशेष वर्ण होना चाहिए जैसे !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
- पासवर्ड में टैब या नई लाइन जैसे कोई अन्य वर्ण नहीं होना चाहिए।
उदाहरण के लिए, यदि इनपुट "@bCd12#4" है, तो आउटपुट True होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- a:=0, b:=0, c:=0, d:=0
- यदि पासवर्ड की लंबाई < 8 या > 20, तो असत्य वापस करें
- पासवर्ड में प्रत्येक वर्ण i के लिए करें:
- यदि i अपरकेस अक्षर है, तो a := a + 1
- अन्यथा यदि i लोअरकेस अक्षर है, तो b := b + 1
- अन्यथा यदि i विशेष वर्णों के सेट में है, तो c := c + 1
- अन्यथा यदि i अंक है, तो d := d + 1
- यदि a>=1 और b>=1 और c>=1 और d>=1 और a+b+c+d, पासवर्ड की लंबाई के बराबर है, तो सत्य वापस करें
- अन्यथा, असत्य वापस करें
उदाहरण
class Solution:
def solve(self, password):
a = b = c = 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