剑指offer_替换空格
程序员文章站
2022-04-30 07:54:46
题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000题解:思路:可以把字符串逐个存入数组中按数组从头检索遇见空格就将其在新数组中替换为%20(需要一个新的数组来存储改变后的字符串),或不用数组直接新建字符串,在字符串上进行操作。代码:Javaclass Solution { ......
题目描述:
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy." 输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
题解:
思路:
可以把字符串逐个存入数组中按数组从头检索遇见空格就将其在新数组中替换为%20(需要一个新的数组来存储改变后的字符串),或不用数组直接新建字符串,在字符串上进行操作。
代码:Java
class Solution {
public String replaceSpace(String s) {
StringBuilder res = new StringBuilder();
for(Character c:s.toCharArray()){
if(c==' ') res.append("%20");
else res.append(c);
}
return res.toString();
}
}
其中StringBuilder和StringBuffer在构造方法上无差别,但Buffer多了一个synchronized,保证了线程安全,所以理应Builder性能更好一些,但leetcode上两种其实并无明显区别。
关于String、StringBuilder和StringBuffer的区别可参考:https://blog.csdn.net/csxypr/article/details/92378336。
本文地址:https://blog.csdn.net/yy13136769189/article/details/107371795