s='aaaabbbccccabsdsdaaadddddd'要求对该字符串进行压缩,并且空间复杂度最小
例如:s的压缩结果是:‘a4b3c4absdsda3d6’
代码如下:
class Solution: def str_comPRess(self, s): result = temp = seg = '' cout = 1 for i in s: if i.__hash__() == temp.__hash__(): cout += 1 seg = i + str(cout) else: if seg != '': result += seg temp = seg = i cout = 1 return result + seg解题思路:
这个感觉用C++最好,因为c++可以操作指针,不过python的话两个思路:
一个是转化成list进行操作,另一个是直接对string进行遍历数值
最后,考虑到python变量就是指针的特性,直接对string操作空间复杂度会比较小。
GitHub: https://github.com/DinnerHowe/LeetCode.git
新闻热点
疑难解答