20120927-笔试
来源:互联网 发布:python编辑器 知乎 编辑:程序博客网 时间:2024/04/30 09:14
题目:给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后。要求:空间复杂度是O(1),且只能遍历一次字符串。
方法:这题本质上术语荷兰国旗问题,在下文中,配图来自博客http://blog.csdn.net/v_july_v/article/details/6211155,第八节部分,作者给出了非常详细的介绍,很容易理解。
代码实现:
void sortRGBstring(char sourceArray[]){if(sourceArray == NULL)return;int begin = 0, current = 0, end = strlen(sourceArray)-1;while(current <= end){if(sourceArray[current] == 'R'){char temp = sourceArray[current];sourceArray[current] = sourceArray[begin];sourceArray[begin] = temp;begin++;current++;}else if(sourceArray[current] == 'G'){current++;}else{char temp = sourceArray[current];sourceArray[current] = sourceArray[end];sourceArray[end] = temp;end--;}}return;}
个人想法:受限于只能遍历一次字符串,不然通过常规的两个指针也可以解决。
- 20120927-笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试~~
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- 笔试
- .jar文件参与android源码编译
- ARM第二课总结
- hdu1162 Eddy's picture (prim最小生成树)
- ASP.NET4.5Web API及非同步程序开发系列(2)
- 【13】String类_获取,判断,转换,替换,切割...
- 20120927-笔试
- TCP回射程序
- IOS开发之路-C 学习笔记7.17
- 数字电路学习
- surfaceview setDisplay时IllegalArgumentException: The surface has been released
- 小学生算术
- Weblogic Server上部署War包
- 3dmax2010中文版下载|3DSMax 2010 狂人精简版
- 关于Object-Oritented Javascript