All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g2201_2300.s2299_strong_password_checker_ii.Solution Maven / Gradle / Ivy

package g2201_2300.s2299_strong_password_checker_ii;

// #Easy #String #2022_06_15_Time_1_ms_(97.32%)_Space_42.3_MB_(38.52%)

/**
 * 2299 - Strong Password Checker II\.
 *
 * Easy
 *
 * 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`.
 *
 * **Example 1:**
 *
 * **Input:** password = "IloveLe3tcode!"
 *
 * **Output:** true
 *
 * **Explanation:** The password meets all the requirements. Therefore, we return true. 
 *
 * **Example 2:**
 *
 * **Input:** password = "Me+You--IsMyDream"
 *
 * **Output:** false
 *
 * **Explanation:** The password does not contain a digit and also contains 2 of the same character in adjacent positions. Therefore, we return false. 
 *
 * **Example 3:**
 *
 * **Input:** password = "1aB!"
 *
 * **Output:** false
 *
 * **Explanation:** The password does not meet the length requirement. Therefore, we return false.
 *
 * **Constraints:**
 *
 * *   `1 <= password.length <= 100`
 * *   `password` consists of letters, digits, and special characters: `"!@#$%^&*()-+"`.
**/
public class Solution {
    public boolean strongPasswordCheckerII(String password) {
        if (password.length() < 8) {
            return false;
        }
        boolean l = false;
        boolean u = false;
        boolean d = false;
        boolean s = false;
        String special = "!@#$%^&*()-+";
        char previous = '.';
        for (int i = 0; i != password.length(); i++) {
            char ch = password.charAt(i);
            if (ch == previous) {
                return false;
            }
            previous = ch;
            if (ch >= 'A' && ch <= 'Z') {
                u = true;
            } else if (ch >= 'a' && ch <= 'z') {
                l = true;
            } else if (ch >= '0' && ch <= '9') {
                d = true;
            } else if (special.indexOf(ch) != -1) {
                s = true;
            }
        }
        return l && u && d && s;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy