【剑指offer】字符串替换
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
*StringBuffer 扩容 str.setLength(扩容大小)
*思路:将原字符数组扩容至目标大小后,从后往前移动字符串,可大大减小移动次数
public class Solution {
public String replaceSpace(StringBuffer str) {
int originalLength = str.length();
int capacityRequired = (calculateLength(str) << 1) + str.length();
//在原大小上扩容2*空格数
str.setLength(capacityRequired);
for(int i=originalLength-1, j=capacityRequired-1; i >= 0; i--, j--){
if(str.charAt(i)==' '){
str.setCharAt(j-2, '%');
str.setCharAt(j-1,'2');
str.setCharAt(j, '0');
j=j-2;
}else{
str.setCharAt(j, str.charAt(i));
}
}
return str.toString().substring(0,capacityRequired);
}
private int calculateLength(StringBuffer str){
int countSpace = 0;
for(int i=0; i < str.length(); i++){
if(str.charAt(i)==' '){
countSpace++;
}
}
【剑指offer】字符串替换的更多相关文章
- 代码随想录第八天 |344.反转字符串 、541. 反转字符串II、剑指Offer 05.替换空格 、151.翻转字符串里的单词 、剑指Offer58-II.左旋转字符串
第一题344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这 ...
- 《剑指offer》替换空格
本题来自<剑指offer> 替换空格 题目: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are% ...
- 菜鸟刷题路:剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格 class Solution { public String replaceSpace(String s) { StringBuilder str = new St ...
- 【剑指offer】替换字符串中的空格
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25002199 剑指offer上的第四道题目,在九度OJ上測试通过,但还是有些问题.由于是用 ...
- 【Java】 剑指offer(4) 替换空格
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请实现一个函数,把字符串中的每个空格替换成"%20&quo ...
- 剑指offer——03替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 注意事项: <剑指o ...
- Go语言实现:【剑指offer】替换空格
该题目来源于牛客网<剑指offer>专题. 请实现一个函数,将一个字符串中的每个空格替换成"%20". 例如,当字符串为We Are Happy.则经过替换之后的字符串 ...
- 剑指offer:替换空格
题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路: 一开始没理解,函数中 ...
- 剑指Offer 2. 替换空格 (字符串)
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 题目地址 https://ww ...
- 剑指offer 04_替换字符串中的空格
#include <stdio.h> void ReplaceBlank(char string[],int length){ if(string == NULL || length == ...
随机推荐
- centos 7 防火墙的使用 firewalld
开启端口命令 输入firewall-cmd --query-port=6379/tcp,如果返回结果为no,那么证明6379端口确实没有开启. 输入firewall-cmd --add-port=63 ...
- MVC分别代表的含义
MVC 是一种将应用程序的逻辑层和表现层进行分离的方法.ThinkPHP 也是基于MVC设计模式的.MVC只是一个抽象的概念,并没有特别明确的规定,ThinkPHP中的MVC分层大致体现在:模型(M) ...
- visual studio + opencv + contrib
经过一天的奋战,终把opencv给用起来了.我是用的工具是vs2017+opencv3.3 上午想用mingw+opencv,结果查了很多资料说gcc不支持opencv.我感觉很奇怪,支不支持以后再说 ...
- 2018.4.23 pip使用
pip打包 python setup.py check 检查setup.py是不是正确,如果正确就只输出running check python setup.py dist 会将项目打包成一个ta ...
- 《DSP using MATLAB》Problem 5.34
第1小题 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- nginx 优化(突破十万并发)
一般来说nginx配置文件中对优化比较有作用的为以下几项: worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity ...
- python基础(八)——多线程
[root@bogon python]# cat test.py #!/usr/bin/ptyhon import thread import time def print_time(threadNa ...
- makefile——小试牛刀
//a.h,包含头文件stdio.h,并且定义一个函数print #include<stdio.h> void print(); //b.c,包含头文件a.h,然后就可以写print函数的 ...
- skipper http router 工具
skipper 是一个http router && 反向代理服务组件,同时支持类似kubernetes 模型的ingress,由zalando 公司的团队开发 并开源,从功能上来看,可 ...
- 02Linux环境配置
Linux环境配置 修改ip地址 1,图形化界面 2,setup 命令虚拟界面 3,修改配置文件(以网络方式为NAT示例) vi /etc/sysconfig/network-scripts/ifcf ...