mirror of
https://github.com/krahets/LeetCode-Book.git
synced 2026-01-12 00:19:02 +08:00
1.7 KiB
Executable File
1.7 KiB
Executable File
方法一:遍历添加
在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。
算法流程:
- 初始化一个
list(Python) 或StringBuilder(Java) ,记为res; - 遍历列表
path中的每个字符c:- 当
c为空格时:向res后添加空格 " " ; - 当
c不为空格时:向res后添加字符c;
- 当
- 将列表
res转化为字符串并返回。
下图中的
s对应本题的path。
代码:
class Solution:
def pathEncryption(self, path: str) -> str:
res = []
for c in path:
if c == '.': res.append(' ')
else: res.append(c)
return "".join(res)
class Solution {
public String pathEncryption(String path) {
StringBuilder res = new StringBuilder();
for(Character c : path.toCharArray())
{
if(c == '.') res.append(' ');
else res.append(c);
}
return res.toString();
}
}
复杂度分析:
- 时间复杂度
O(N): 遍历使用O(N),每轮添加(修改)字符操作使用O(1); - 空间复杂度
O(N): Python 新建的 list 和 Java 新建的 StringBuilder 都使用了线性大小的额外空间。




