문제 설명
두 개의 문자열 s, skip 및 자연수 인덱스가 주어지면 다음 규칙에 따라 문자열을 생성하려고 합니다. 암호 규칙은 다음과 같습니다.
– 문자열 s의 각 알파벳을 알파벳 다음에 인덱스로 바꿉니다.
– 인덱스 뒤의 글자 수가 z를 초과하면 다시 a로 되돌아갑니다.
– Skip에서 알파벳만 빼고 건너뜁니다.
예를 들어 s = “aukks”, skip = “wbqd”, index = 5이면 문자 5는 af에서 왔지만 (b,c,d,e,f)의 ‘b’와 ‘d’는 계산되지 않습니다. , 건너뛰기에 포함되어 있기 때문입니다.
따라서 “b”와 “d”를 제외하고 알파벳은 (c, e, f, g, h)의 순서로 “a”에서 “h”까지 5가 됩니다. 위의 규칙에 따라 나머지 “ukks”를 변경하면 “appy”가 되고 결과는 “happy”가 됩니다.
두 개의 문자열 s, skip, 자연수 인덱스를 매개변수로 하여 위의 규칙에 따라 s를 변환한 결과를 반환하는 solve 함수를 완성합니다.
제한
– 길이 5 ≤ s ≤ 50
– 1 ≤ 점프 길이 ≤ 10
– s와 skip은 모두 알파벳 소문자입니다.
– Skip에 포함된 알파벳은 s에 포함되지 않습니다.
– 1 ≤ 인덱스 ≤ 20
I/O 예시
| 에스 | 건너뛰다 | 색인 | 결과 |
| “오크스” | “wbqd” | 5 | “행복하다” |
화신
class Solution {
public String solution(String s, String skip, int index) {
String answer = "";
char() sCharArray = s.toCharArray();
for(int i=0; i<sCharArray.length; i++ ){
for(int j=0; j<index; j++){
do{
sCharArray(i)++;
if(sCharArray(i) > 'z'){
sCharArray(i) -= 26;
}
}while(skip.contains(String.valueOf(sCharArray(i))));
}
}
answer = String.valueOf(sCharArray);
return answer;
}
}