力扣(leetcode) 482. 密钥格式化

题目在这: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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度不学习!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值