문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
0부터 시작하는 인덱스를 가진 문자열 s가 주어지는데, 짝수 인덱스에는 영어 소문자, 홀수 인덱스에는 숫자를 가진다.
문자 c와 숫자 x를 입력받아 c의 다음 x번째 문자를 반환하는 연산 shift(c, x)를 수행해야한다.
홀수 인덱스 i에 대해, s[i]를 shift(s[i - 1], s[i])연산의 결과로 바꾼다.
모든 인덱스를 바꾼 후 s를 반환해라. shift(s[i - 1], s[i]) 연산 결과는 'z'를 초과하지 않는다.
#1
Input: s = "a1c1e1"
Output: "abcdef"
Explanation: 숫자는 다음과 같이 대체된다.
- s[1] -> shift('a', 1) = 'b'
- s[3] -> shift('c', 1) = 'd'
- s[5] -> shift('e', 1) = 'f'
#2
Input: s = "a1b2c3d4e"
Output: "abbdcfdhe"
Explanation: 숫자는 다음과 같이 대체된다.
- s[1] -> shift('a',1) = 'b'
- s[3] -> shift('b',2) = 'd'
- s[5] -> shift('c',3) = 'f'
- s[7] -> shift('d',4) = 'h'
class Solution {
public String replaceDigits(String s) {
char[] arr = s.toCharArray();
for(int i = 1; i < arr.length; i += 2){
arr[i] = (char)(arr[i - 1] + (arr[i] - '0'));
}
return new String(arr);
}
}