将字符串中的字符'*'移到串的前部分,保证非*字符的顺序位置不能变
2015-09-17 22:58
369 查看
题目:
编写字符串处理函数,将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)
Again!
编写字符串处理函数,将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)
Again!
//将字符串中的字符'*'移到串的前部分,保证非*字符的顺序位置不能变 void partitionStar(char* str) { int len = strlen(str); int i = len - 1; int j = len - 1; // j指向第一个'*' int count = 0; while (i >= 0) { if (str[i] == '*') { i--; count++; } else { swap(str[i], str[j]); i--; j--; } } } void main() { char str[] = "ab**cd*e1"; partitionStar(str); cout << str << endl; }
相关文章推荐
- opencv Mat 与IplImage 转换
- 从捋清想法到变成文字中间有多远?
- bzoj-1138 Baj 最短回文路
- 零基础学python-18.2 递归函数与分解递归函数的执行步骤
- 零基础学python-18.2 递归函数与分解递归函数的执行步骤
- POST请求来源判断
- poj 3669 Meteor Shower(BFS)
- request的setCharacterEncoding()无效
- POJ1023 The Fun Number System【进制相关】
- LeetCode Maximal Rectangle
- LeetCode Maximal Rectangle
- OLED颠覆显示行业 未来电视发展明朗化
- Android 自定义View——自定义点击事件
- Qt Quick 图像处理实例之美图秀秀(附源码下载)
- mongodb的安装与启动(centos7)
- AJAX--显示加载中并弹出图层遮挡页面
- log4j学习(一)最简单的例子
- android:music
- SQL Server中扫描(scan)和查找(seek)这两种算法的区别
- 韩顺平 java 第五讲第六讲第七讲 类与对象 成员方法 构造方法