剑指Offer 01 二维数组中的查找 Java题解
02 剑指Offer 替换空格 Java题解
题目链接
题目描述
题解:
图解:
代码:
复杂度
02 剑指Offer 替换空格 Java题解
题目链接
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
题解:
1.将StringBuffer类型的字符串转换成字符数组
2.将str清空
3.遍历字符数组取出单个字符比较是不是空格
4.如果是空格str添加%20,否则添加原字符即可。
5.最后将StringBuffer类型的字符串转换成String类型返回
图解:
代码:
public class Solution {
public String replaceSpace(StringBuffer str) {
char[] chars = str.toString().toCharArray();//转换成字符数组
str.delete(0,str.length());//将字符串清空
for(char c: chars){
if(c == ' '){//如果遍历的字符为空格则在str后添加%20
str.append("%20");
} else{//如果遍历的字符为其他则在str后添加该字符
str.append(c);
}
}
return str.toString();//将StringBuffer转换成String类型返回
}
}
复杂度
空间复杂度O(1) 没有额外空间
最坏时间复杂度:O(n) 遍历整个字符串数组