剑指Offer----扩展:删a复制b
来源:互联网 发布:js中的splice方法 编辑:程序博客网 时间:2024/06/05 02:18
问题描述:
删除一个字符串中所有的a,并且赋值所有的b,字符串足够大!
关键是倒着复制字符串数组!
/*删除一个字符串所有的a,并且复制所有的b。注:数组足够大!*/#include<stdio.h>#include<stdlib.h>void Function(char *str){if (str == NULL)return;int n = 0, numb = 0;for (int i = 0; str[i] != '\0'; ++i){if (str[i] != 'a')str[n++] = str[i];//统计字符串中非a字符的数量,并删除a字符if (str[i] == 'b')numb++;//统计字符串中b字符的数量}//倒着复制int newLength = numb + n;str[newLength] = 0;for (int i = newLength - 1, j = n - 1; j >= 0; --j){str[i--] = str[j];if (str[j] == 'b')str[i--] = 'b';}}int main(){char str[100] = "abcdabcaabbccdaabbccd";Function(str);printf("str = %s\n", str);printf("%s %s\n", __DATE__, __TIME__);system("pause");return 0;}
运行结果:
str = bbcdbbcbbbbccdbbbbccdAug 25 2016 15:06:56请按任意键继续. . .
与该题目思想一致的相关题目:
替换空格
两个排序的数组融合成一个数组
0 0
- 剑指Offer----扩展:删a复制b
- 剑指offer P49 A,B皆排好序,把A插入B
- LintCode-剑指Offer-(1)A+B问题
- 剑指offer:B是不是A的子树
- A/B(扩展欧几里得)
- 剑指offer-判断B是不是A的子结构
- hdu1576 A/B (扩展欧几里德)
- HDU1576 A/B 扩展欧几里得
- hdu A/B 扩展gcd
- HDU1576 A/B(扩展欧几里得)
- [hdu1576]: A/b (扩展欧几里得)
- Hdu1576 A-A/B 扩展欧几里德
- 【A/B%m+扩展欧几里得】hdu 1576 A/B
- 【剑指offer】面试题18:输入两颗二叉树A和B,判断B是不是A的子结构?
- 剑指offer 18---输入两棵二叉树A和B,判断B是不是A的子结构
- 剑指offer 1 复制控制
- 剑指Offer----扩展:交换星号
- 剑指Offer----扩展:二进制(小米)
- n的思想计数器思想万能法
- android studio 中去除actionbar 标题栏的方法。requestWindowFeature(Window.FEATURE_NO_TITLE)无效
- Array & Event & Dom 兼容总结
- 构造器初始化的顺序
- Facebook 开源动画框架 Pop
- 剑指Offer----扩展:删a复制b
- 博大精深的VS的快捷键
- 347. Top K Frequent Elements
- typedef的使用
- Codeforces刷题之路——710A King Moves
- TimePicker 异常处理
- 链表写的小程序
- React Native 中组件的生命周期
- spring事务传播行为解释