剑指 Offer 05. 替换空格
题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解思路
1>源代码
class Solution {
public String replaceSpace(String s) {
int len = s.length();
char[] array = new char[len * 3];
int i;
int j=0;
StringBuffer output = new StringBuffer();
for(i=0;i<len;i++){
char temp = s.charAt(i);
if(temp == ' '){
output.append('%');
output.append('2');
output.append('0');
}
else{
output.append(temp);
}
}
return output.toString();
}
}
2>算法介绍
由于要将原字符串中的’ ‘替换为’%20’,即将1个字符替换为3个字符,所以我们不能在原有的字符串中进行操作,需要申请新的字符串空间。
对于我熟悉的python语言来说我们只需要开一个列表,当扫描到’ ‘时,将’%’, ‘2’, '0’添加进列表即可。
但对于java语言来说我还不是很熟练,经过查找发现我们可以使用StringBuffer类。于是我们按照上述四项思想完成代码,如果扫描的值不是’ ',则直接将当前扫描的字符加入StringBuffer中。