2016腾讯实习生在线笔试题:把单词反转
2016-06-17 16:33
337 查看
2016腾讯实习生在线笔试题:把字符串中单词反转,China from am I.转换成:I am from China.
思路:两次逆序操作即可:第一次对字符串整体逆序,第二次分别对每个单词逆序。
同时对'.'特殊处理,对单词逆序时,第一个单词特殊处理
源码:
package CharString;
//问题:把字符串中单词反转,China from am I.转换成:I am from China.
//两次逆序操作即可:第一次对字符串整体逆序,第二次分别对每个单词逆序。
//同时对'.'特殊处理,对单词逆序时,第一个单词特殊处理
public class SwapWords {
public static void swap(char[] c,int i,int j){
char temp ;
//整体逆序时,最后一个'.'不逆序。
//每个单词逆序时,第一个单词前无空格,而j指向空格,所以将j--
if(i==0){
j--;
}
while(j>i){
temp = c[i];
c[i] = c[j];
c[j] = temp;
i++;
j--;
}
}
public static void swapWords(char[] c){
int len = c.length;
swap(c,0,len-1);//先整体逆序,对'.'的处理放在上述swap中
int i=0;
int j=0;
while(j<len-1){
i=j;
j++;
while(c[j]!=32&&c[j]!=46){
j++;
}
if(c[j]=='.'){//处理最后一个单词的逆序
swap(c,++i,--j);
j++;
}
else
swap(c,i,j);//单词逆序时,i,j分别指向一个单词左右的空格
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] c ="China from am I.".toCharArray();
swapWords(c);
for(int i=0;i<c.length;i++){
System.out.print(c[i]);
}
}
}
思路:两次逆序操作即可:第一次对字符串整体逆序,第二次分别对每个单词逆序。
同时对'.'特殊处理,对单词逆序时,第一个单词特殊处理
源码:
package CharString;
//问题:把字符串中单词反转,China from am I.转换成:I am from China.
//两次逆序操作即可:第一次对字符串整体逆序,第二次分别对每个单词逆序。
//同时对'.'特殊处理,对单词逆序时,第一个单词特殊处理
public class SwapWords {
public static void swap(char[] c,int i,int j){
char temp ;
//整体逆序时,最后一个'.'不逆序。
//每个单词逆序时,第一个单词前无空格,而j指向空格,所以将j--
if(i==0){
j--;
}
while(j>i){
temp = c[i];
c[i] = c[j];
c[j] = temp;
i++;
j--;
}
}
public static void swapWords(char[] c){
int len = c.length;
swap(c,0,len-1);//先整体逆序,对'.'的处理放在上述swap中
int i=0;
int j=0;
while(j<len-1){
i=j;
j++;
while(c[j]!=32&&c[j]!=46){
j++;
}
if(c[j]=='.'){//处理最后一个单词的逆序
swap(c,++i,--j);
j++;
}
else
swap(c,i,j);//单词逆序时,i,j分别指向一个单词左右的空格
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] c ="China from am I.".toCharArray();
swapWords(c);
for(int i=0;i<c.length;i++){
System.out.print(c[i]);
}
}
}
相关文章推荐
- 单例模式(Singleton)
- Zabbix-3.0环境搭建指南
- 初心大陆----python宝典(意外发生篇)
- 深入理解 KVC\KVO 实现机制 — KVO
- 设计模式:装饰模式(Decorator)
- Memcached 小探
- debug日志
- 去掉shiro登录时url里的JSESSIONID
- curl_init()函数用法
- 如何在java List中进行模糊查询
- Linux中常用的查看系统信息的命令
- centos 学习笔记——源码编译安装apache
- html——表单2(多行输入)
- Python之datetime总结
- HTML5:视频控制
- [zz]澄清P问题、NP问题、NPC问题的概念
- Java反射(四)----- 获取成员变量和构造函数信息
- 深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)
- eclipse编辑jsp快捷键保存时特别卡的解决方法
- HDFS深入浅析