TreeviewCopyright © aleen42 all right reserved, powered by aleen42
1309. 解码字母到整数映射
https://leetcode-cn.com/problems/decrypt-string-from-alphabet-to-integer-mapping/
Java
/*
* @Author: Goog Tech
* @Date: 2020-08-29 15:51:55
* @LastEditTime: 2020-08-29 15:52:08
* @Description: https://leetcode-cn.com/problems/decrypt-string-from-alphabet-to-integer-mapping/
* @FilePath: \leetcode-googtech\#1309. Decrypt String from Alphabet to Integer Mapping\Solution.java
* @WebSite: https://algorithm.show/
*/
class Solution {
public String freqAlphabets(String s) {
StringBuilder sb = new StringBuilder();
int i = 0;
// 循环遍历字符串
while(i < s.length()) {
// 当遍历到位置 i 时,首先看其后第两个字符 s[i + 2] 是否存在且等于 #
// 若存在则表示位置 i, i + 1, i + 2 表示一个 j 到 z 之间的字符,否则表示 a 到 i 的字符
if(i < s.length() - 2 && s.charAt(i + 2) == '#') {
// 首先将切割的字符串转换为整型来获取其对应的 ASCII 码,再通过加 a 减 1 得到一个范围为 1 到 26 的数值
// 最后将其转换为对应的字符,然后继续移动指针
sb.append((char)('a' + Integer.parseInt(s.substring(i, i + 2)) - 1));
i += 3;
}else {
sb.append((char)('a' + Integer.parseInt(s.substring(i, i + 1)) - 1 ));
i += 1;
}
}
// 返回字符串结果
return sb.toString();
}
}
Python
'''
Author: Goog Tech
Date: 2020-08-29 15:51:59
LastEditTime: 2020-08-29 15:52:29
Description: https://leetcode-cn.com/problems/decrypt-string-from-alphabet-to-integer-mapping/
FilePath: \leetcode-googtech\#1309. Decrypt String from Alphabet to Integer Mapping\Solution.py
WebSite: https://algorithm.show/
'''
class Solution(object):
def freqAlphabets(self, s):
"""
:type s: str
:rtype: str
"""
# 初始化字符串指针,字符串长度,结果列表
i, length, result = 0, len(s), []
# 循环遍历字符串
while i < length:
# 当遍历到位置 i 时,首先看其后第两个字符 s[i + 2] 是否存在且等于 #
# 若存在则表示位置 i, i + 1, i + 2 表示一个 j 到 z 之间的字符,否则表示 a 到 i 的字符
if i + 2 < length and s[i + 2] == '#':
# 先将切割的字符串转换为整型来获取其对应的 ASCII 码,再通过加 a 减 1 得到一个范围为 1 到 26 的数值
# 最后将其转换为对应的字符,然后继续移动指针
result.append(chr(int(s[i : i + 2]) + ord('a') - 1))
i += 3
else:
result.append(chr(int(s[i]) + ord('a') - 1))
i += 1
# 返回字符串结果
return ''.join(result)