算法分析-如何实现字符串的反转
2015-08-27 21:11
471 查看
问题:将一个句子中的单词进行反转,例如:“how are you”,进行反转后的结果为“you are how”。
解题思路:将这个句子进行两次反转操作即可。
1)对整个字符串进行字符反转,反转结果“uoy era woh”;
2)接下来对每个单词进行字符反转,结果就是“you are how”。
源代码:
解题思路:将这个句子进行两次反转操作即可。
1)对整个字符串进行字符反转,反转结果“uoy era woh”;
2)接下来对每个单词进行字符反转,结果就是“you are how”。
源代码:
/* 问题:将一个句子中的单词进行反转,例如:“how are you”,进行反转后的结果为“you are how”。 解题思路:将这个句子进行两次反转操作即可。 1)对整个字符串进行字符反转,反转结果“uoy era woh”; 2)接下来对每个单词进行字符反转,结果就是“you are how”。 */ public class SwapString{ public void swap(char []cArr , int front , int end){ while(front<end){ char tmp = cArr[end]; cArr[end] = cArr[front]; cArr[front] = tmp; front++; end--; } } public String swapWrods(String s){ char []cArr = s.toCharArray(); //对整个字符串进行字符反转操作 swap(cArr,0,cArr.length - 1); int begin = 0 ; //对每个单词进行字符反转操作 for(int i = 1; i<cArr.length;i++){ if(cArr[i] ==' '){ swap(cArr,begin,i-1); begin = i+1; } } //处理最后一个单词 swap(cArr, begin, cArr.length-1); return new String(cArr); } public static void main(String []args){ String str = "how are you"; System.out.println(new SwapString().swapWrods(str)); } }
相关文章推荐
- 电阻电路分析(基于MATLAB)
- linux下安装安装pcre configure: error: You need a C++ compiler for C++ support
- 第3章 函数
- UVa 1225 Digit Counting
- HDU 4435 charge-station (2012年天津赛区现场赛E题)
- Java数据结构-二叉查找树续以及平衡二叉查找树
- 黑马程序员--对象和方法之间的关系
- POJ 2229-Sumsets(把n拆分为2的幂相加的拆分种数)
- 层叠上下文 Stacking Context
- 两张图说明双向链表(更新于2015年8月27日21:09:15)
- 第10章 同步设备I/O和异步设备I/O(2)_同步IO和异步IO基础
- scanf函数
- java Cookie详解
- expect实现远程用户交互式登录
- Apache多域名映射多个端口
- 条款3:尽可能使用const(use const whenever possible)
- HDU 5067 Harry And Dig Machine
- Linux Shell高级技巧
- Junit(2)小试牛刀
- CSS position 属性