Given a password, we have to categorize it as a strong or weak one. There are some checks that need to be met to be a strong password. For a weak password, we need to return the reason for it to be weak. Conditions to be fulfilled are:
- Minimum 9 characters and maximum 20 characters.
- Cannot be a newline or a space
- There should not be three or more repeating characters in a row.
- The same string pattern(minimum of two character length) should not be repeating.
Note: For checking the basic validations of a password, click here. Examples:
Input1 : Qggf!@ghf3
Output1 : Strong Password!
Input2 : aaabnil1gu
Output2 : Weak Password: Same character repeats three
or more times in a row
Input3 : Geeksforgeeks
Output3 : Weak Password: Same character repeats three
or more times in a row
Input4 : Aasd!feasnm
Output4 : Weak password: Same string pattern repetition
Input5 : 772*hdf77
Output5 : Weak password: Same string pattern repetition
Input6 : " "
Output6 : Password cannot be a newline or space!
Below is the implementation.
Python3
import re
def password(v):
if v = = "\n" or v = = " " :
return "Password cannot be a newline or space!"
if 9 < = len (v) < = 20 :
if re.search(r '(.)\1\1' , v):
return "Weak Password: Same character repeats three or more times in a row"
if re.search(r '(..)(.*?)\1' , v):
return "Weak password: Same string pattern repetition"
else :
return "Strong Password!"
else :
return "Password length must be 9-20 characters!"
def main():
print (password( "Qggf!@ghf3" ))
print (password( "Gggksforgeeks" ))
print (password( "aaabnil1gu" ))
print (password( "Aasd!feasn" ))
print (password( "772*hd897" ))
print (password( " " ))
if __name__ = = '__main__' :
main()
|
Output
Strong Password!
Weak password: Same string pattern repetition
Weak Password: Same character repeats three or more times in a row
Weak password: Same string pattern repetition
Strong Password!
Password cannot be a newline or space!
Time Complexity: O(N) N is refers to the length of the input password string,
Auxiliary Space: O(1)
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
28 Mar, 2023
Like Article
Save Article