给定字符串S, 删除所有连续的重复项。
例子:
Input: aaaaabbbbbb
Output : abInput : srcmini
Output : geksforgeksInput : aabccba
Output : abcba
我们已经有解决此问题的方法, 请参阅从字符串中删除所有连续的重复项链接。我们可以使用python快速解决此问题itertools.groupby()方法。
itertools.groupby(iterable, key [optional])在Python中如何工作?
groupby方法需要两个输入, 一个是可迭代的(列表, 元组, 字典)第二个是密钥功能, 它为可迭代的每个元素计算密钥。它返回键和可迭代的分组项。如果未指定键函数或为” 无” , 则键默认为标识函数, 并返回不变的元素。例如,
numbers = [ 1 , 1 , 1 , 3 , 3 , 2 , 2 , 2 , 1 , 1 ]
import itertools
for (key, group) in itertools.groupby(numbers):
print (key, list (group))
输出如下:
(1, [1, 1, 1])
(3, [3, 3])
(2, [2, 2])
(1, [1, 1])
# function to remove all consecutive duplicates
# from the string in Pythonfrom itertools import groupby
def removeAllConsecutive( input ):# group all consecutive characters based on their
# order in string and we are only concerned
# about first character of each consecutive substring
# in given string, so key value will work for us
# and we will join these keys without space to
# generate resultant string
result = []
for (key, group) in groupby( input ):
result.append(key)print (''.join(result))# Driver program
if __name__ = = "__main__" :
input = 'aaaaabbbbbb'
removeAllConsecutive( input )
参考文献:
https://docs.python.org/3/library/itertools.html
输出如下:
ab
【Python groupby方法删除所有连续的重复项】首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- Python Tkinter中的grid()方法用法示例
- #导入Word文档图片# Linux下Shell脚本语言编程
- #导入Word文档图片# Linux下automake工具使用(自动构建Makefile文件)
- 使用uni-app开发非原生小程序微信/支付宝小程序
- 小程序开发快速上手快速入门篇
- 全流程分析Netty设计思路与实践
- 硬件开发笔记(硬件开发基本流程,制作一个USB转RS232的模块:设计原理图)
- Redis底层与5大数据类型
- 防火墙基础之单臂路由和DHCP接口地址池的配置