A password is said to be strong if:
Given a string password, return true if it is a strong password. Otherwise, return false.
Example Input: password = “IloveLe3tcode!”
Step-by-step execution:
class Solution {
    public boolean strongPasswordCheckerII(String password) {
        if (password.length() < 8) return false;
        boolean lower = false, upper = false, digit = false, special = false;
        String specials = "!@#$%^&*()-+";
        for (int i = 0; i < password.length(); i++) {
            char c = password.charAt(i);
            if (Character.isLowerCase(c)) lower = true;
            else if (Character.isUpperCase(c)) upper = true;
            else if (Character.isDigit(c)) digit = true;
            else if (specials.indexOf(c) >= 0) special = true;
            // check adjacent characters
            if (i > 0 && c == password.charAt(i - 1)) return false;
        }
        return lower && upper && digit && special;
    }
}