面试 42-1:翻转单词顺序
来源:互联网 发布:云办公平台源码 编辑:程序博客网 时间:2024/06/01 22:59
一. 题目
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串”I am a student.”,则输出”student. a am I”.
代码请到我的代码库中下载 Point2Offer
二. 代码
package ween_2;/** * 剑指offer: 翻转单词顺序 * 方法:两次翻转,第一次翻转整个句子,第二次翻转单词 * 测试用例:功能测试(有多个单词,1个单词) * 特殊输入测试(空指针,字符串为空,字符串只有空格) * @author dingding * Date:2017-6-20 20:00 * Declaration: All Rights Reserved! */public class ReverseWord { public static void main(String[] args) { test1(); test2(); test3(); test4(); test5(); } //翻转函数 private static void reverse(char[] str,int start,int end){ if (str==null || start<0 || end >str.length ||end <start || str.length<1) { return; //if外面的其他语句都不会执行 } while (start<end){ char tmp = str[start]; str[start] = str[end]; str[end] = tmp; start++; end--; } } //翻转句子 private static char[] reverseSentence(char[] str){ if (str == null || str.length<1) { return str; } reverse(str, 0, str.length-1); int start = 0; int end = 0; while (start <str.length ) { if (str[start] == ' ') { start++; end++; }else if (end == str.length ||str[end] == ' ' ) { //或的左右顺序有关 reverse(str, start, end-1); end++; start = end; }else { end++; } } return str; } /*====================测试用例=================*/ private static void test1() { System.out.println(new String(reverseSentence("I am a student.".toCharArray()))); } private static void test2() { System.out.println(new String(reverseSentence("Wonderful".toCharArray()))); } private static void test3() { System.out.println(new String(reverseSentence("".toCharArray()))); } private static void test4() { System.out.println(new String(reverseSentence(" ".toCharArray()))); } private static void test5() { if (reverseSentence(null)==null) { System.out.println("空指针!"); } }}
有不妥当之处,麻烦告知:D
阅读全文
0 0
- 面试 42-1:翻转单词顺序
- 42 翻转单词顺序
- 面试经典(1)---翻转句子中单词的顺序
- 剑指offer面试题目:翻转单词顺序
- 剑指offer面试42翻转单词顺序和面试5从尾到头打印链表
- 剑指Offer----面试题42(1):翻转单词顺序
- 面试100题:10.翻转句子中单词的顺序
- 面试100题:10.翻转句子中单词的顺序
- 面试OR笔试24——翻转单词顺序
- 翻转单词顺序(面试题 42)
- 剑指offer-42 翻转单词顺序
- 面试题42:翻转单词顺序
- 面试题42:翻转单词顺序
- 《剑指offer》42:翻转单词顺序
- 面试题42:翻转单词顺序
- 面试题42—翻转单词顺序
- 剑指offer-42-翻转单词顺序列
- 翻转单词顺序
- poi3.9导入导出 讲解实例
- JDE表对应DB视图
- Python3 字符串操作
- java反射
- 网页中嵌套图片的输出格式说明
- 面试 42-1:翻转单词顺序
- asp 指定读取某篇文章
- c语言中.c与.h文件详解
- 【算法】图的应用--城市之间需要转的机数
- u-boot第二阶段分析(三)
- Python接口自动化测试框架httpautotest
- Linux 下安装 numpy 和 scipy
- Java中日期时间格式与毫秒数的相互转换
- ubuntu异常关机后导致分辨率变化(降低)