博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符扫描剑指Offer读书笔记之第二章2字符替换Strut2教程-java教程
阅读量:6567 次
发布时间:2019-06-24

本文共 1434 字,大约阅读时间需要 4 分钟。

每日一贴,今天的内容关键字为字符扫描

    给定一个字符串str和一个子串SubStr,如果str面里的空间充足,写一个函数将str面里的字符ch替换成SubStr。书中只是一个特例:将格空替换成%20.

    标题析分:

    如果早年到后扫描str,碰到一个ch,那么ch前面的有所字符都要向后挪SubLen-1个位置。这样做的效率肯定是不高的,怎么在O(n)的时间复杂度内成完这个操纵呢。早年到后扫描不可,那就从后到前扫描。如果先预知道了有多少个字符须要替换,是否是能就先预后之替换后之str的长度,也就是最后一个字符的位置,那就从最后一个字符开始存呗。步调:

    *扫描str,定确ch的个数为cnt。

    *算计新str的小大,为cnt*(SubLen-1)+StrLen

    *从后到前扫描,碰到ch,从后到前制复SubStr

    码代如下:

    每日一道理
共和国迎来了她五十诞辰。五十年像一条长河,有急流也有缓流;五十年像一幅长卷,有冷色也有暖色;五十年像一首乐曲,有低音也有高音;五十年像一部史诗,有痛苦也有欢乐。长河永远奔流,画卷刚刚展开,乐曲渐趋高潮,史诗还在续写。我们的共和国正迈着坚定的步伐,跨入新时代。
//失掉指定字符的数量int GetSpaceCount(char *str, int nLen, char ch){	if(!str || nLen < 1)		return -1;	int cnt = 0;	for(int i = 0; i < nLen; ++i)	{		if(str[i] == ch)			++cnt;	}	return cnt;}//将指定字符换成指定字符串void Replace(char *SrcStr, char *DesStr, char ch){	if(!SrcStr || !DesStr)		return;	int SrcLen = strlen(SrcStr);	int DesLen = strlen(DesStr);	int cnt = GetSpaceCount(SrcStr, SrcLen, ch);	int i,k;	k = cnt * (DesLen - 1) + SrcLen;//如果有要必须要查检够不够放	SrcStr[k]= '\0';	for(i = SrcLen - 1; i >= 0; --i)	{		if(SrcStr[i] == ch)		{			for(int j = DesLen - 1; j >=0; --j) 				SrcStr[--k] = DesStr[j];		}		else			SrcStr[--k] = SrcStr[i];	}}int main(){	char Str[100];	char SubStr[10];	char ch;	while(gets(Str) && gets(SubStr))	{		scanf("%c", &ch);		getchar();		Replace(Str, SubStr, ch);		puts(Str);	}}

    关相标题链接:单词反转。考参另外一篇博客

    

    http://blog.csdn.net/kay_zhyu/article/details/8769026

    

    。其实有些题很简单,但是怎么样把码代写得英俊,那就须要事本了。

文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

你可能感兴趣的文章
06- Linux下sublime下载与使用
查看>>
前端文摘:Web 开发模式演变历史和趋势
查看>>
将图片序列转化为视频文件
查看>>
jQuery的文档操作***
查看>>
js 小数取整,js 小数向上取整,js小数向下取整
查看>>
vue-cli3.0
查看>>
window.location.replace vs window.location.href
查看>>
CVPR 2018:阿里提出应用 LocalizedGAN 进行半监督训练
查看>>
被劫持的wordpress.com账户被用来感染站点
查看>>
分享一下最近看的东西
查看>>
《大数据、小数据、无数据:网络世界的数据学术》一 第2章 何为数据 2.1 引言...
查看>>
寓教于乐的顶峰:新一届大学生集群竞赛火热开战
查看>>
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一第1章 职业发展机会和团队建设...
查看>>
HBase BlockCache系列 - 探求BlockCache实现机制
查看>>
【参与有奖】您用的MySQL、MongoDB、Redis等服务被勒索过吗?
查看>>
Java核心技术卷I基础知识1.2.6 体系结构中立
查看>>
Libvirt 虚拟化库介绍
查看>>
《Spring 5 官方文档》26. JMS(一)
查看>>
《Python Cookbook(第2版)中文版》——1.11 检查一个字符串是文本还是二进制
查看>>
Tkinter之Label
查看>>