剑指Offer - 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:0 <= s 的长度 <= 10000
分析
看完题目,这个题没有什么特别优秀的解法,就使用常规的解法操作也没问题,考察了基础知识,涉及到StringdD charAt(index) 、构造方法String(char value[], int offset, int count) 的操作。感兴趣的话可以看一下String的API。
每次替换从一个字符变为3个字符,使用字符数组char[] 可方便的替换,字符数组长度规定为3*s.length() ,可以确保能放下所有的数据。使用一个index 代表数组的索引位置(index每操作一次加1),存储相应的数据。遍历结束后返回数据即可。
coding
时间复杂度O(n),空间复杂度O(n)
class Solution {
public String replaceSpace(String s) {
char[] res = new char[s.length()*3];
int index = 0;
for(int i=0;i<s.length();i++){
if(s.charAt(i) == ' '){
res[index++] = '%';
res[index++] = '2';
res[index++] = '0';
} else
res[index++] = s.charAt(i);
}
return new String(res,0,index);
}
}
|