自己写的:
class Solution: def licenseKeyFormatting(self, s: str, k: int) -> str: # 将字符串转换为列表,方便操作 new_S = list() # 遍历输入字符串 for i in s: # 如果当前字符不是 '-',则添加到新列表中 if i != '-': # 如果不是小写字母,则直接添加 if not i.islower(): new_S.append(i) # 如果是小写字母,则转换为大写后添加 else: new_S.append(i.upper()) # 计算新列表的长度 n = len(new_S) # 计算需要插入 '-' 的次数 times = n // k # 计算剩余字符的数量 left_num = n - times * k # 初始化一个新的字符串,用于存储结果 new_S_plus = '' count = 0 # 如果有剩余字符,则先将剩余字符插入到新字符串中,并在末尾添加 '-' if left_num != 0: for j in new_S[:left_num]: new_S_plus = new_S_plus + j new_S_plus = new_S_plus + '-' # 遍历剩余的字符,每添加 k 个字符后插入一个 '-' for m in new_S[left_num:]: new_S_plus = new_S_plus + m count += 1 if count == k: new_S_plus = new_S_plus + '-' count = 0 # 返回结果,去除末尾多余的 '-' return new_S_plus.rstrip('-') else: # 如果没有剩余字符,则直接遍历添加字符,并在每添加 k 个字符后插入一个 '-' for n in new_S: new_S_plus = new_S_plus + n count += 1 if count == k: new_S_plus = new_S_plus + '-' count = 0 # 返回结果,去除末尾多余的 '-' return new_S_plus.rstrip('-')
gpt优化:
class Solution: def licenseKeyFormatting(self, s: str, k: int) -> str: # 去除所有的 '-',并转换为大写 s = s.replace('-', '').upper() # 计算第一段的长度 first_length = len(s) % k # 初始化结果字符串 result = s[:first_length] + '-' if first_length > 0 else '' # 遍历剩余字符,每 k 个字符插入一个 '-' for i in range(first_length, len(s), k): result += s[i:i+k] + '-' # 返回结果,去除末尾的 '-' return result.rstrip('-')
标签:count,字符,格式化,Leedcode,length,添加,plus,密钥,new From: https://www.cnblogs.com/yyyjw/p/18187920