题目在这:https://leetcode-cn.com/problems/license-key-formatting/
题目分析:
一定读懂题。
1.该段密码字符串具体分为几组的无所谓的。
2.每一段使用 ‘-’
来隔开。
3.第一段可以为任意个字符,1-k个都可以。
4.原来有多少个 ‘-’
都无视。
5.最后全部转换成大写字符。
思路分析:
读懂题后就很简单了。
我们可以倒叙遍历,也可以将字符串倒叙后做正向遍历。
我这里采用倒叙字符串的方法,
首先倒叙字符串,然后正序遍历,每K个字符就加一个 ‘-’
。
最后如果小于K个字符,则全部加上。
最后再翻转字符串,得到答案。
完整代码:
代码参考一下就行, 边调试边写的 ,懒得改了。弄的挺乱的。
class Solution:
def licenseKeyFormatting(self, s: str, k: int) -> str:
if s[0] == '-':
s.lstrip('-')
S = s
K = k
res = ''
S = S[::-1]
j = 0
for i in S:
if i != '-' and j <= K:
res += i
j +=1
if j == K:
res += '-'
j = 0
res = res[::-1]
if len(res) != 0:
if res[0] == '-':
res = res.lstrip('-')
print(res.upper())
return res.upper()