汇总:剑指offer算法合集
题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof
解题思路
- java中字符串不可变,修改的情况一般是使用StringBuilder,我们只需要创建一个StringBuilder,然后遍历当前字符串,如果遇到空格,则添加"%20",否则添加当前字符,最后把StringBuilder重新转回String即可
复杂度分析
遍历字符串,假设字符串的长度为n,则时间复杂度为O(n)
,需要StringBuilder进行存储,空间复杂度为O(n)
代码实现
class Solution {
public String replaceSpace(String s) {
StringBuilder stringBuilder = new StringBuilder();
char[] chars = s.toCharArray();
for (char c : chars) {
//遍历字符数组,遇到空格则添加"%20",否则添加当前字符
stringBuilder.append(c == ' ' ? "%20" : c);
}
return stringBuilder.toString();
}
}