DEV Community

Thivyaa Mohan
Thivyaa Mohan

Posted on


2299. Strong Password Checker II

A password is said to be strong if it satisfies all the following criteria:

It has at least 8 characters.
It contains at least one lowercase letter.
It contains at least one uppercase letter.
It contains at least one digit.
It contains at least one special character. The special characters are the characters in the following string: "!@#$%^&*()-+".
It does not contain 2 of the same character in adjacent positions (i.e., "aab" violates this condition, but "aba" does not).
Given a string password, return true if it is a strong password. Otherwise, return false

class Solution {
    bool strongPasswordCheckerII(string &p) {
        if(p.size()<8) return false;
        bool low =false, upper = false,digit = false,special =false;
        for(auto it:p){
            if(it>='a' and it<='z')low = true;
        else if(it>='A' and it<='Z')upper = true;
        else if(isdigit(it)) digit = true;
            else special = true;

        //check the 6th condition 
        for(int i=0;i+i<p.size();i++) if(p[i] == p[i+1]) return false;
        if(low and upper and special and digit) return true;
        return false;

Enter fullscreen mode Exit fullscreen mode

Oldest comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesnโ€™t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.