剑指offer 替换字符串中的空格
void replaceSpace(char *str,int length) {
if(str==NULL||length<=)
return;
int originlen=;
int newlen=;
int space=;
while(str[originlen]!='\0')
{
if(str[originlen]==' ')
space++;
originlen++;
}
originlen++;
newlen=originlen+*space;
if(originlen==||space==||newlen>length)
return;
char *p1,*p2;
p1=&str[originlen-];
p2=&str[newlen-];
for(int i=;i<newlen;i++)
{
if(*p1!=' ')
{
*p2=*p1;
p1--;
p2--;
}
else
{
*p2='';
p2--;
*p2='';
p2--;
*p2='%';
p2--;
p1--;
}
}
return;
}
把代码整理简化一下:
void replaceSpace(char *str,int length) {
if(str==NULL||length<=)
return;
int originlen=;
int newlen=;
int space=;
while(str[originlen]!='\0')
{
if(str[originlen++]==' ')
space++;
}
originlen++;
newlen=originlen+*space;
if(originlen==||space==||newlen>length)
return;
int p1=originlen-;
int p2=newlen-;
for(int i=;i<newlen;i++)
{
if(str[p1]!=' ')
str[p2--]=str[p1--];
else
{
str[p2--]='';
str[p2--]='';
str[p2--]='%';
p1--;
}
}
return;
}
剑指offer 替换字符串中的空格的更多相关文章
- 《剑指offer》字符串中的字符替换
一.题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 二.输入描 ...
- 【Java】 剑指offer(50-1) 字符串中第一个只出现一次的字符
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 在字符串中找出第一个只出现一次的字符.如输入"abacc ...
- 剑指offer——替换字符串
总结:先计算出总共有多少空格,count++:然后从后往前遍历,每遇到一个空格,count--: 替换空格 参与人数:2119时间限制:1秒空间限制:32768K 通过比例:20.23% ...
- 剑指 Offer 12. 矩阵中的路径 + 递归 + 深搜 + 字符串问题
剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索. 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试. 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的 ...
- 【剑指Offer】字符串的排列 解题报告(Python)
[剑指Offer]字符串的排列 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...
- 剑指Offer——企业级项目中分层的含义与依据及多态的优势
剑指Offer--企业级项目中分层的含义与依据及多态的优势 关于以上两点,由于项目经验较少,自己不是很明白,特整理如下. 常见分层架构模式 三层架构 3-tier architecture 微 ...
- 剑指Offer:字符串排列【38】
剑指Offer:字符串排列[38] 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bc ...
- 剑指 Offer 38. 字符串的排列 + 无重复元素的全排列
剑指 Offer 38. 字符串的排列 Offer_38 题目描述 解题思路 可以使用递归实现全排列,每次都确定一个数的位置,当所有位置的数都确定后即表示一个排列. 但是考虑到本题需要排除重复的排列, ...
- 剑指 Offer 38. 字符串的排列
剑指 Offer 38. 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" ...
随机推荐
- TensorFlow 深度学习笔记 逻辑回归 实践篇
Practical Aspects of Learning 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有 ...
- MYSQL 关闭二进制日志
方法 set sql_log_bin = 0; ---------------------------------------------------------------------------- ...
- sshd被攻击的自动防御方法v2
1.增加了“频繁攻击的封锁时间”,即设置为上次攻击时间的2倍 2.加入了数据库支持,将攻击者相关信息记录入库,如攻击者ip.攻击次数.封锁时间 3.简化了代码 具体实现步骤如下: 1.创建 ...
- Linux下设置开机自启动Tomcat
方法一: linux 下tomcat开机自启动修改Tomcat/bin/startup.sh 为: export JAVA_HOME=/usr/java/j2sdk1..2_08 export CLA ...
- Linux学习十七、正规表达式练习题
情境模拟题一:透过 grep 搜寻特殊字串,并配合数据流重导向来处理大量的文件搜寻问题. 目标:正确的使用正规表示法: 前提:需要了解数据流重导向,以及透过子命令 $(command) 来处理档名的搜 ...
- iOS中通知传值
NSNotification 通知中心传值,可以跨越多个页面传值, 一般也是从后面的页面传给前面的页面. 思路: 第三个界面的值传给第一个界面. 1. 在第一个界面建立一个通知中心, 通过通知中心 ...
- java实现xml文件增删改查
java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...
- lua的string库与强大的模式匹配
lua原生解释器对字符串的处理能力是十分有限的,强大的字符串操作能力来自于string库.lua的string函数导出在string module中.在lua5.1,同一时候也作为string类型的成 ...
- AlertDialog.Builder中的setMultiChoiceItems中的事件处理
因为实习项目中涉及到类似于时钟设置闹钟反复时间的原因须要使用对话框的方式呈现.因为DialogFragment眼下还没实验出嵌套Fragment的方法.所以临时先用AlertDialog.Builde ...
- UVA 10163 Storage Keepers(dp + 背包)
Problem C.Storage Keepers Background Randy Company has N (1<=N<=100) storages. Company wants ...