题解:
- 从字符串
s
中移除所有破折号。 - 将所有字母字符转换为大写。
- 从尾部开始,每隔
k
个字符就插入一个破折号到新字符串中。 - 返回处理后的字符串。
class Solution:
def licenseKeyFormatting(self, s: str, k: int) -> str:
# 将所有小写字母转换为大写字母并去掉破折号
format_str = s.upper().replace("-", "")
new_str = []
# 从尾部开始,每k个字符插入一个破折号
for i in range((len(format_str)), 0, -k):
start = max(0, i - k) # 确保索引不为负
new_str.append(format_str[start:i])
# 因为从尾部开始处理的,需要翻转列表
new_str.reverse()
return '-'.join(new_str)