题目
给定一个许可密钥字符串 s,仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n + 1 组。你也会得到一个整数 k 。
我们想要重新格式化字符串 s,使每一组包含 k 个字符,除了第一组,它可以比 k 短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。
返回 重新格式化的许可密钥 。
思路
1、字符串去掉 '-',全部转成大写字母,然后翻转
2、最后再反转回原来的顺序
代码
class Solution:
def licenseKeyFormatting(self, s: str, k: int) -> str:
s = s.upper().replace('-','')[::-1]
nub = 0
res = ''
for i in range(0,len(s),k): # 从 0 开始,以 k 为步长遍历字符串 s。这样可以确保每次循环处理 k 个字符
res += s[i:i+k] + '-'
return res[::-1].lstrip('-') # lstrip('-') 方法去除字符串开头的连字符(如果有的话)
561

被折叠的 条评论
为什么被折叠?



