当前位置: 首页 > news >正文

力扣刷题(第九十七天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

密钥格式化

解题思路

  1. 移除原字符串中的所有破折号,并将小写字母转换为大写。
  2. 从后向前遍历处理后的字符串,每 K 个字符为一组。
  3. 最后将各组逆序拼接,并用破折号分隔。
    class Solution:def licenseKeyFormatting(self, S: str, K: int) -> str:# 移除所有破折号并转换为大写clean = S.replace('-', '').upper()n = len(clean)if n == 0:return ''# 计算第一个分组的长度first_len = n % Kif first_len == 0:first_len = Kgroups = []# 添加第一个分组groups.append(clean[:first_len])# 从第一个分组后的位置开始,每K个字符为一组for i in range(first_len, n, K):groups.append(clean[i:i+K])# 用破折号连接所有分组return '-'.join(groups)

逐行解释

class Solution:def licenseKeyFormatting(self, S: str, K: int) -> str:# 移除所有破折号并将小写字母转换为大写# 例如:S="a-b-c-d" → clean="ABCD"clean = S.replace('-', '').upper()n = len(clean)# 处理空字符串的特殊情况if n == 0:return ''# 计算第一个分组的长度# 如果总长度能被K整除,第一个分组长度为K;否则为余数first_len = n % Kif first_len == 0:first_len = K# 存储所有分组的列表groups = []# 添加第一个分组(可能比K短)groups.append(clean[:first_len])# 从第一个分组后的位置开始,每K个字符为一组# 例如:clean="ABCDEFG", K=3, first_len=1 → 分组为["A", "BCD", "EFG"]for i in range(first_len, n, K):groups.append(clean[i:i+K])# 用破折号连接所有分组并返回return '-'.join(groups)

http://www.dtcms.com/a/296503.html

相关文章:

  • 强化学习入门三(SARSA)
  • 专题:2025微短剧行业生态构建与跨界融合研究报告|附100+份报告PDF汇总下载
  • LeetCode 1695.删除子数组的最大得分:滑动窗口(哈希表)
  • 07 RK3568 Debian11 网络优先级
  • “抓了个寂寞”:一次实时信息采集的意外和修复
  • 网络基础19--OSPF路由协议(上)
  • 基于QT(C++)实现(图形界面)通讯录系统
  • JavaJSP
  • 【SpringAI实战】FunctionCalling实现企业级自定义智能客服
  • Qt 调用ocx的详细步骤
  • 单片机学习课程
  • 数据推荐丨海天瑞声7月数据集上新啦!
  • 海外红人营销的下一站:APP出海如何布局虚拟网红与UGC生态?
  • idea监控本地堆栈
  • Redis分布式锁的学习(八)
  • 无源域自适应综合研究【2】
  • Qt连接MySql数据库
  • SAP B1 DTW成功登录后点击下一步提示没有权限读取清单
  • QML 模型
  • 阿里云SLS未开启索引时无法查询日志内容
  • 11.事务
  • 【GoLang#1】:Go 语言概述(背景 | 环境配置 | 特点 | 学习)
  • Redis单线程模型(含面试题)
  • pytorch常用函数
  • 【MySQL数据库备份与恢复1】二进制日志,mysqlbinlog
  • Linux Wlan 无线网络驱动开发-scan协议全流程详解
  • 企业安全基石:解锁等保测评的战略价值
  • 循环神经网络--LSTM模型
  • 15.2 DeepSpeed显存优化实战:7B大模型训练资源从84GB压缩到10GB!
  • 11-day08文本匹配