Problem: 271. 字符串的编码与解码
[TOC]
思路
第一反应是不是对字符串进行加密解密,但是读题后发现是将列表转化为字符串,然后第二部分对自己处理过的字符串转化回源列表。
解题方法
列表可能有多个元素(由‘,’区分开的单词组),在每个元素中可能存在多个由空格隔开的单词。于是分开对list中的元素和空格进行处理。
- 首先对列表进行第一层遍历,再对每个元素进行遍历,当读取到‘ ’的时候对预先声明的空列表中添加转义符(一开始打算自定义转义符,后来发现\t直接可行)在每一层遍历每一次结束的时候都在列表中添加新的,与‘ ’不同的转义符比如\n。最后
''.join()
转换成字符串,return。 - 在解码时,预先声明一个空列表List和空字符串Str,当遍历读取到‘\t’的时候,就在字符串中加入空格
Str = ''.join([Str, ' '])
,同理,读取到’\n’的时候就将Str添加到List中,并且将Str置空进行下一次的循环。
复杂度
时间复杂度:
添加时间复杂度, 示例: $O(n)$
空间复杂度:
添加空间复杂度, 示例: $O(n)$
Code
1 |
|