[程序人生]: 反转一个句子
2015-10-28 19:12
330 查看
题目:
反转一个句子,要求句子中的每个单子都被反转,但单词本身不被反转
如:I am a Boy! 反转为:Boy! a am I
思路:左旋转处理
1. 将整个句子的所有字符统一反转
2. 根据空格,阶段单词,再反转每一个单词
代码:
分析:注意翻转字符串的函数,用注释中的写法高效!
思路二:查找空格,直接按照单词为集合反转
反转一个句子,要求句子中的每个单子都被反转,但单词本身不被反转
如:I am a Boy! 反转为:Boy! a am I
思路:左旋转处理
1. 将整个句子的所有字符统一反转
2. 根据空格,阶段单词,再反转每一个单词
代码:
public static String ReversalString(String StrInput){ /* char[] charTemp = StrInput.toCharArray(); int iFlagBegin = 0; int iFlagEnd = charTemp.length-1; while(iFlagBegin < iFlagEnd){ char Temp = charTemp[iFlagBegin]; charTemp[iFlagBegin] = charTemp[iFlagEnd]; charTemp[iFlagEnd] = Temp; iFlagBegin++; iFlagEnd--; } return String.valueOf(charTemp); */ String strResult = ""; for(int i =0;i<StrInput.length();i++ ){ strResult =StrInput.substring(i,i+1) + strResult; } return strResult; } public static String ReversalSentence(String Initial){ String strResult = ""; String strReversalAll = ReversalString(Initial); int iFlag = 0; for(int i = 0; i < strReversalAll.length(); i++){ if(strReversalAll.substring(i, i+1).equals(" ")){ if(i >= iFlag){ strResult += ReversalString(strReversalAll.substring(iFlag,i)) + " "; iFlag = i+1; } } if(i == strReversalAll.length() -1){ if(strReversalAll.substring(i,i+1).equals(" ")){ strResult = strResult.substring(0, strResult.length()-1); } else{ strResult += ReversalString(strReversalAll.substring(iFlag,i+1)); } } } return strResult; }
分析:注意翻转字符串的函数,用注释中的写法高效!
思路二:查找空格,直接按照单词为集合反转
public static String ReversalSentence(String Initial){ String strResult =""; int iFlag = 0; for(int i = 0; i < Initial.length(); i++){ if(i == Initial.length() -1){ strResult = Initial.substring(iFlag,i+1) + " " + strResult ; } if(Initial.substring(i, i+1).equals(" ")){ if(i >= iFlag){ if(iFlag == 0){ strResult = Initial.substring(iFlag,i) + strResult; }else{ strResult = Initial.substring(iFlag,i) + " " + strResult; } iFlag = i+1; } } } return strResult; }
相关文章推荐
- [LeetCode]题解(python):032-Longest Valid Parentheses
- jQuery学习之旅 Item10 ajax快餐
- 将所有在线性表Lb中但不在La中的数据元素插入到La中
- swift中如何定义一个变量,数组。
- jQuery学习之旅 Item10 ajax快餐
- 过河卒
- 使用mysql-proxy代理内网云服务器
- 排序 遍历
- Phone List(字典树)
- java中的集合
- LeetCode 116: Populating Next Right Pointers in Each Node
- UFT的工具简介
- JAVA---构造函数和构造代码块 finally块
- JavaWeb 转发与重定向解读
- linux下ab网站压力测试命令,输出结果的中文注解
- Android Studio 教程(干货)
- windows运行打开服务命令集锦
- 利用Runtime 实现自动化归档
- bash的特点
- 【LWJGL官方教程】渲染