• 1214. 许可证密钥格式


    1214. 许可证密钥格式

    中文English

    给定一个用字符串S表示的许可证,其中仅仅包含了数字、字母和短横线。字符串被N个短横线“-”切分为了N+1组。

    给定一个数字K,要求重新整理字符串的格式,使得除了第一组之外的每个组正好K个字符,第一组长度可以比K小,但也至少要包含一个字符。此外,对于两个组之间必须要插入一个短横线,所有的小写字母都要转换为大写字母。

    样例

    输入: S = "5F3Z-2e-9-w", K = 4
    输出: "5F3Z-2E9W"
    解释: 字符串S切分为两个部分, 每个部分有4个字符。
    注意原串中两个额外的横线是多余的,可以删掉。
    
    输入: S = "2-5g-3-J", K = 2
    输出: "2-5G-3J"
    解释: 字符串S切分为了三部分, 每个部分有两个字符,除了第一个部分,因为如原题所述,第一部分长度只有1。
    

    注意事项

    字符串S的长度不会超过12000,而且K是一个正整数。
    字符串S仅仅包含大小写字母、数字和短横线“-”。
    字符串S非空。

     输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param S: a string
        @param K: a integer
        @return: return a string
        """
        '''
        大致思路:
        1.初始化res = '' ,s = '',以-进行切割,取到完整字符串s,然后while取到,除了第一个字符串之外模除K==0的s字符串,s[:i]作为首个字符串
        s[i:]进行循环切割成l份,每一次循环都需要加-,最终返回res[len(res)-1],最后的-是多余的。
        '''
        def licenseKeyFormatting(self,S,K):
            s = ''
            res = ''
    
            dic = S.split('-')
            for i in dic:
                s += i
            
            i = 1
            while len(s[i:]) % K != 0:
                i += 1
    
            res = s[:i] + '-'
            s = s[i:]
            
            l = len(s) // K
            for j in range(l):
                res += s[j*K:(j+1)*K] + '-'
            return res[:len(res)-1].upper()
  • 相关阅读:
    PHP创建socket服务
    linux配置PS1
    几个常用的linux命令
    MongoDB的分片集群搭建
    django-admin 配置
    django使用mysql数据库
    Django知识
    docker 监控之 cadvisor
    shell 拾遗
    shell 基数数值方法
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12731396.html
Copyright © 2020-2023  润新知