Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
一、题目描述
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例
示例1:
输入: s = "We are happy."
输出: "We%20are%20happy."
提示
- 0 <= s 的长度 <= 10000
难度:简单
此题为简单题,兄弟们可以重拳出击,没错,就是你想到的那种方法,简单粗暴!
二、思路分析
众所周知,力扣上,简单题是真简单,中等题有些困难,困难题看不懂答案。
题目解析
- 替换空格,题目简单明了,将字符串中的所有空格替换为 "%20",没有任何的隐藏难度,直接遍历字符串判断如果是空格字符,直接替换为 "%20" 。
解题思路
回字有四种写法,替换空格同样有多种解法,解题思路分别为:
- 使用 java 中内置字符串的 replace 替换方法,将字符串 " " 替换为 "%20".
- 遍历拼接字符的方法,定义 StringBuffer 字符串用于拼接结果字符串,遍历源字符串,如果碰到 ' ' 则替换为拼接 "%20",遍历完成后返回结果字符串。
- 使用数组组装结果字符串,同样是遍历源字符串,在遍历的过程中,如果碰到 ' ' 字符,则为数组中添加 '%' '2' '0' 三个字符,最终遍历完字符串后将数组转为字符串返回。
三、AC 代码
使用内置 replace 函数
public String replaceSpace(String s) {
//直接使用内置方法替换
return s.replace(" ", "%20");
}
使用字符串拼接
public String replaceSpace(String s) {
// 遍历判断每个字符是否是空格
StringBuffer str = new StringBuffer();
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == ' ') str.append("%20");
else str.append(s.charAt(i));
}
return str.toString();
}
使用数组组装字符
public String replaceSpace(String s) {
// 使用数组组装
char[] arr = new char[s.length() * 3];
int count = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == ' '){
arr[count++] = '%';
arr[count++] = '2';
arr[count++] = '0';
}
else arr[count++] = s.charAt(i);
}
return new String(arr,0,count);
}
四、总结
知识点
字符串和数组相关操作
- 字符串长度:s.length();
- 数组长度:arr.length;
- 数组转字符串:String str = new String(arr,0,arr.length);
最后
阳春三月,算法刷起来!LeetCode 剑指 Offer。
简单题,不需要考虑太多,开干就是了。