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