给你一个字符串 s
,它由数字('0'
- '9'
)和 '#'
组成。我们希望按下述规则将 s
映射为一些小写英文字符:
- 字符(
'a'
-'i'
)分别用('1'
-'9'
)表示。 - 字符(
'j'
-'z'
)分别用('10#'
-'26#'
)表示。
返回映射之后形成的新字符串。
题目数据保证映射始终唯一。
示例 1:
输入:s = "10#11#12" 输出:"jkab" 解释:"j" -> "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2".
class Solution {
public String freqAlphabets(String s) {
String ss = "";
if (s.length() < 3) {
for (int i = 0; i < s.length(); i++) {
ss += (char) (s.charAt(i) + 48);
}
} else {
for (int i = 0; i < s.length() - 2; i++) {
if (s.charAt(i + 2) != '#') {
ss += (char) (s.charAt(i) + 48);
} else {
ss += (char) ((s.charAt(i)-48) * 10 +(s.charAt(i + 1)-48) + 96);
i += 2;
}
}
if (s.charAt(s.length() - 1) != '#') {
if(s.charAt(s.length() - 2) != '#') ss += (char) (s.charAt(s.length() - 2) + 48);
ss += (char) (s.charAt(s.length() - 1) + 48);
}
}
return ss;
}
}