首页 > 其他分享 >Leedcode-密钥格式化

Leedcode-密钥格式化

时间:2024-05-12 16:41:54浏览次数:13  
标签:count 字符 格式化 Leedcode length 添加 plus 密钥 new

自己写的:

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

相关文章

  • Leedcode-数字的补数
    自己写的:classSolution:deffindComplement(self,num:int)->int:#初始化一个空字符串,用于存储二进制表示bin_str=''#将输入的数字转换为二进制表示,存储在bin_str中whilenum>0:bin_str=str(num......
  • HbuilderX代码格式化插件配置
    点击查看代码//.prettierrc.jsmodule.exports={//一行最多可以有多少个字符printWidth:160,//一个tab相当于多少个空格tabWidth:4,//是否使用使用tab缩进useTabs:false,//是否在每个语句的末尾添加分号semi:true,//使用单引号而不是双引......
  • CSS在线格式化、美化、压缩工具
    网上有不少CSS格式化压缩的工具,但是不少站点有广告干扰,或操作起来不方便,或打开速度比较慢,所以自己定制了这个css格式化压缩的工具,也希望对大家有帮助,提供的这个CSS代码格式化和css在线压缩工具,不需要下载使用YUICompressor或CSSTidy等离线格式化工具,直接在线压缩操作即可。免......
  • html格式化压缩美化工具
    html格式化工具为您提供html格式化,html美化排版,html压缩工具,html在线格式化,html代码在线格式化,html在线压缩,html格式化,可以将凌乱的前端html代码整理的整整齐齐,凌乱的html代码不好调试,冗余代码多了也会严重影响速度,当你在为提高了用户体验,做出了很绚丽的效果而欣喜的时候......
  • json在线解析及格式化工具
    JSON可以将程序语言对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如在PHP中,可以将JSON还原为数组或者一个基本对象。在用到AJAX时,如果需要用到数组传值,这时就需要用JSON将数组转化......
  • Leedcode-岛屿的周长
    自己写的:classSolution:defislandPerimeter(self,grid:List[List[int]])->int:#初始化周长计数器count=0#遍历二维网格的行foriinrange(len(grid)):#遍历二维网格的列forjinrange(len(gr......
  • PyCharm编辑器结合Black插件,轻松实现Python代码格式化
    1、简介使用Black对Python代码进行格式化,可使代码看起来更美观。但是,随着项目规模不断变大,对每个文件运行Black变得很繁琐。能否在文件保存后立即运行Black呢?本文就来介绍在PyCharm中实现这一目标的方法。2、安装Black首先,在虚拟环境中安装Black。$pipinstallblack ......
  • 格式化时间文本写入
    **设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日星期xtt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。**/***filename:format_time_text_writing.c*author:[email protected]*date:2024-05-08*fun......
  • leedcode-重复的子字符串
    classSolution:defrepeatedSubstringPattern(self,s:str)->bool:#获取字符串的长度n=len(s)#初始化指针指向字符串的最后一个字符rptr=n-1#在指针到达字符串的第一个字符之前循环whilerptr>0:......
  • textwrap:Python格式化文本段落
    前言前文是针对普通的字符串数据进行处理。今天,我们要讲解的textwrap库,是对多文本进行处理的库。比如对于段落的缩进,填充,截取等,都可以通过textwrap库进行操作。特别是自己编写打印程序的时候,可以使用该库进行校正文档非常便捷,大大的加快了文本格式的处理。话不多说,我们来一步步......