
문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
숫자와 '#'으로 구성된 문자열 s가 주어진다. 아래와 같은 방법으로 s를 영어 소문자로 매핑하고 싶다.
매핑 이후 구성된 문자열을 반환해라.
#1
Input: s = "10#11#12"
Output: "jkab"
Explanation: "j" -> "10#", "k" -> "11#", "a" -> "1", "b" -> "2"
#2
Input: s = "1326#"
Output: "acz"
class Solution {
public String freqAlphabets(String s) {
StringBuilder sb = new StringBuilder();
for(int i = s.length() - 1; i >= 0; i--){
if(s.charAt(i) == '#'){
int num = (s.charAt(i - 2) - '0') * 10 + (s.charAt(i - 1) - '0');
sb.append((char) (num - 1 + 'a'));
i -= 2;
}else{
int num = s.charAt(i) - '0';
sb.append((char) (num - 1 + 'a'));
}
}
return sb.reverse().toString();
}
}