Day 2:替换空格
时间:2022-07-24
本文章向大家介绍Day 2:替换空格,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
剑指Offer_编程题——替换空格
题目描述:
请实现一个函数,将一个字符串中的每个空格替换为“%20”。例如,当字符串为:We Are Happy.则经过替换之后的字符串为:We%20Are%20Happy.
具体要求:
时间限制: C/C++ 1秒,其他语言2秒 空间限制: C/C++32M,其他语言64M
具体实现:
1、正常用java实现
public class Solution{
public String replaceSpace(StringBuffer str){
String result = str.toString ();
if(result.contains (" ")){
while(str.indexOf(" ")!= str.lastIndexOf(" ")){
int index = str.indexOf(" ");
str.replace(index, index+1, "%20");
}
int index = str.indexOf(" ");
str.replace(index, index + 1, "%20");
result = str.toString();
return result;
}else{
return result;
}
}
}
其效果如图所示:
2、代码优化
public class Solution{
public String replaceSpace(StringBuffer str){
int index = str.indexOf(" ");
while(index != -1){
str.replace(index, index+1, "%20");
index = str.indexOf(" ", index);
}
String result = str.toString();
return result;
}
}
其效果如图所示:
3、代码进一步优化
public class Solution{
public String replaceSpace(StringBuffer str){
int n = str.length();
int ii = 0;
for(int i = 0;i < n;i++){
if(str.charAt(i) == ' ')
ii++;
}
int nn = 2 * ii + n;
int index = nn - 1;
char[] ct = new char[nn];
while (n > 0){
if (str.charAt (n - 1) != ' ')
ct[index--] = str.charAt (n - 1);
else{
ct[index--] ='0';
ct[index--] = '2';
ct[index--] = '%';
}
n--;
}
return String.valueOf(ct);
}
}
代码效果如图所示:
4、接下来用python将其实现
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
i = 0
n =len(s)
ss=[]#用于盛放转化完的字符串
for i in range(n):
if s[i].isspace():#判断是否为空格
ss.append('%20')
else:
ss.append(s[i])
i +=1
ss=''.join(ss)#将列表转成字符串
return ss
5、通过python语言对代码进行进一步优化
class Solution:
def replaceSpace(self, s):
return s.replace(' ', '%20')
代码效果如下:
总结
本道题主要考察我们对字符串的替换以及遍历,我们可以通过replace()函数进行快速的写出代码,但是时间执行和空间占用较多,因此,我们得通过charAt()进行重写replace()函数。继续加油,争取早日找到工作,Good Luck!!!
参考文献
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法