删除字串中指定的字符
来源:互联网 发布:越南汉字知乎 编辑:程序博客网 时间:2024/04/30 14:03
今天看到同学在做题,要求是:把一个字符串中的所有空格去掉,合并所有字符。例如
输入:abc 123 abc<enter>
输出:abc123abc
很简单吧!!
总结了一下,想到三种简单的处理方法:
第一种:时间复杂度为n^2,空间复杂度为n
void delete_3(char* str){int i=0,j=0;while (str[i]){if (str[i] == ' '){j = i;while (str[j]){str[j] = str[j+1];j++;}}i++;}}
第二种:时间复杂度为n,空间复杂度为2n
void delete_2(char *str){char s[100];int i = 0,j = 0;while(str[i]){if (str[i] != ' ')s[j++] = str[i];i++;}s[j] = '\0';i = 0;while(s[i]){str[i] = s[i];i++;}str[i] = '\0';}
第三种:时间和空间复杂度都是n
void delete_1(char *str){char *p = str;int i = 0;while(*p){if (*p != ' ')str[i++] = *p;p++;}str[i] = '\0';}
当然,最好用就是第三种,简单而且高效!当时一看到这题,我脑子里只有第一种方法。。。。。。。可能因为我单片机玩多了,总是觉得资源是很有限的,所以利用空间换时间的处理方法很少被我想到。。。。。。但第二种方法的确要快于第一种。而第三种方法我却没有想到。。。。。感觉自己好low,真得多看看,多想想才行!!!
第三种方法看起来很简单,但却是很精妙!!这为处理字符串内字符的移位,删除等提供了一个很好的想法。
比如说,删除数组中的指定元素,而这个元素可以有多个,也可能是连续的。
小东西,却很实用!
0 0
- 删除字串中指定的字符
- 删除串中指定的字符
- 删除字符串中指定位置的字符
- 删除字符串中指定位置的字符
- 删除字符串中指定的字符
- 删除字符串中指定的字符
- 删除字符串中指定的一些字符
- 删除字符串中指定字符
- 删除字符串中指定字符
- 删除字符串中指定字符
- 删除字符串中指定的字符形成字符串
- sql删除字段中指定字符之前的字符串或者删除字段中指定字符之后的字符串
- 【csdn题集】删除字符串中指定字符
- c#删除字符串中指定字符
- 删除字符串中指定的字符,如果字符前后有指定的标点符号也一并删除
- JAVA删除字符串中指定字符集(删除敏感字符)
- 查询文件中指定字符的记录
- 去除字符串中指定字符的方法
- (1.4.1)虚继承、虚函数继承、多重继承和“含对象成员类的构造顺序”
- Java_语法基础_true false与null
- Html5游戏之KiwiJs(4)-资源加载进度
- VNC的作用是什么
- django 命令行方式使用model建数据库
- 删除字串中指定的字符
- android开发入门常见错误(1)-adb报错
- nginx架构
- TYVJ 1403 [NOIP2010]关押罪犯
- mvc数据表机构修改引起运行错误的解决方法
- QTP无法录制网页内部操作
- 安卓能用的modebus CRC16计算,附上对应的C语言的CRC16
- MapReduce学习(一)
- IDLE清屏的方法