

Python,速成心法
敲代码,查资料,问Ai
练习,探索,总结,优化

★★★★★博文创作不易,源码代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★
Python打包教程07:还不会用--add-data参数,添加资源文件吗?
Python打包教程04:UPX安装与使用(减小.exe体积)
Python打包教程03:PyInstaller命令使用指南
Python教程:PyCharm安装过程中遇到的中英文对照表
Python教程:找到字符串中最长回文子串(上海自来水来自海上)
# 示例输入: "3[a]2[bc]"输出: "aaabcbc"输入: "3[a2[c]]"输出: "accaccacc"输入: "2[abc]3[cd]ef"输出: "abcabccdcdcdef"输入: "abc3[cd]xyz"输出: "abccdcdcdxyz"
↓ 完整源码如下 ↓
# -*- coding: utf-8 -*-# @Author : 小红牛# 微信公众号:wdPythondef decode_string(s: str) -> str:"""解码字符串。参数:s: 编码字符串返回:str: 解码后的字符串"""stack = [] # 用于存储 (之前的字符串, 重复次数)current_str = "" # 当前正在构建的字符串current_num = 0 # 当前的重复次数for ch in s:if ch.isdigit():# 处理多位数字current_num = current_num * 10 + int(ch)elif ch == '[':# 遇到 '[',将当前状态压栈,并重置stack.append((current_str, current_num))current_str = ""current_num = 0elif ch == ']':# 弹出栈顶,重复当前字符串prev_str, repeat = stack.pop()current_str = prev_str + current_str * repeatelse:# 普通字母,直接追加current_str += chreturn current_str# 测试用例if __name__ == "__main__":print(decode_string("3[a]2[bc]")) # "aaabcbc"print(decode_string("3[a2[c]]")) # "accaccacc"print(decode_string("2[abc]3[cd]ef")) # "abcabccdcdcdef"print(decode_string("abc3[cd]xyz")) # "abccdcdcdxyz"print(decode_string("100[leetcode]")) # "leetcode"重复100次(测试大数字)print(decode_string("")) # ""
完毕!!感谢您的收看
------★★历史博文集合★★------
