문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
다음 조건을 모두 충족하면 강력한 비밀번호라고 말한다.
문자열 password가 주어졌을 때, 강력한 비밀번호면 true를 반환해라. 그렇지 않다면 false를 반환해라.
#1
Input: password = "IloveLe3tcode!"
Output: true
Explanation: 비밀번호가 모든 조건을 충족한다. true를 반환한다.
#2
Input: password = "Me+You--IsMyDream"
Output: false
Explanation: 비밀번호가 숫자를 포함하지 않고 인접한 위치에 같은 문자 2개를 포함한다. 그래서 false를 반환한다.
#3
Input: password = "1aB!"
Output: false
Explanation: 비밀번호가 조건을 충족하지 않는다. 그래서 false를 반환한다.
class Solution {
public boolean strongPasswordCheckerII(String password) {
int n = password.length();
if(n < 8){
return false;
}
boolean isLow = false;
boolean isUp = false;
boolean isDigit = false;
boolean isSpec = false;
for(int i = 0; i < n; i++){
char c = password.charAt(i);
if(i != n - 1 && c == password.charAt(i + 1)){
return false;
}else if(c >= 'a' && c <= 'z'){
isLow = true;
}else if(c >= 'A' && c <= 'Z'){
isUp = true;
}else if(c >= '0' && c <= '9'){
isDigit = true;
}else if("!@#$%^&*()-+".indexOf(c) != -1){
isSpec = true;
}
}
return isLow && isUp && isDigit && isSpec;
}
}