【python-子集】Generalized Abbreviation(广义缩写)
时间:2022-07-23
本文章向大家介绍【python-子集】Generalized Abbreviation(广义缩写),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Write a function to generate the generalized abbreviations of a word.
Example: Given word = “word”, return the following list (order does not matter): [“word”, “1ord”, “w1rd”, “wo1d”, “wor1”, “2rd”, “w2d”, “wo2”, “1o1d”, “1or1”, “w1r1”, “1o2”, “2r1”, “3d”, “w3”, “4”]
思路:递归+回溯
class Solution(object):
def generateAbbreviations(self, word):
""" :type word: str :rtype: List[str] """
res = []
#从0开始遍历,最后0用于计数
self.helper( 0, word, "", res, 0)
return res
def helper(self, index, word, temp_res, res, count):
#注意这里是len(word),不是len(word)-1
if index==len(word):
if count!=0:
#组合新的字符串
temp_res = temp_res[0:-count] + str(count)
res.append( temp_res )
return
# append 1
self.helper( index+1, word, temp_res+'1', res, count+1)
# append word
if count!=0:
temp_res = temp_res[0:-count] + str(count)
self.helper( index+1, word, temp_res+word[index], res, 0)
s=Solution()
print(s.generateAbbreviations("word"))
只能看代码慢慢理解了。
参考:https://www.it610.com/article/5456538.htm
- Android M 权限最佳实践
- Android自定义ViewGroup神器-ViewDragHelper
- Android 中常见的内存泄漏
- Android 高级自定义Toast及源码解析
- 环境配置:React Native 开发环境配置 For Android
- 美团多渠道打包方案详解,速度快到白驹过隙
- 下一代Android渠道打包工具
- 01 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之业务分析与DAO层
- 通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息
- 我的第一个小程序(Discuz! + 微信小程序)
- 微信小程序 wx.request 的封装
- 如何用Python爬虫实现百度图片自动下载?
- 以太坊智能合约开发入门
- lodash源码分析之baseFindIndex中的运算符优先级
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Netgear Nighthawk R8300 upnpd PreAuth RCE 分析与复现
- 【python-opencv】图像梯度
- 七夕又来了,给女朋友做个动态二维码
- 【python-opencv】canny边缘检测
- python的日志模块案例
- 【python-opencv】图像金字塔
- Linux之inodes溢出问题
- volitale 怎么保证可见性
- 企业多人协同办公软件-Confluence 7.6体验
- 【python opencv】轮廓属性
- Go 语言学习之 reflect
- 【python opencv】轮廓更多属性
- Gin 学习之安装和快速启动
- 给兄弟讲bitCoins和blockchain
- Gin 学习之响应处理