剑指offer面试题42_1翻转单词顺序(java实现)
来源:互联网 发布:网络加密方式有哪些 编辑:程序博客网 时间:2024/05/21 08:20
整体思想:1.先翻转整个英文句子;2.逐个翻转句子中的每个单词
package com.example.interview42_1;public class Solution {public String ReverseSentence(String str) {//整体思路:1.翻转整个英文句子;2.逐个翻转句子中的每个单词if (str == null || str.length() <= 0) {return "";}char[] charArray = str.toCharArray();//1.翻转整个英文句子int begin = 0;int end = charArray.length - 1;//翻转后得到的英文句子char[] reverseCharArray = Reverse(charArray, begin, end);//2.逐个翻转 翻转后的英文句子中的每个单词//需要确定begin和endbegin = end = 0;while (begin < reverseCharArray.length && end < reverseCharArray.length ) {if (reverseCharArray[begin] ==' ') {begin++;end++;} else if (reverseCharArray[end] == ' ') {//如果begin指向字符不为空格,而end指向为空格,此时可以确定一个单词的起始位置end--;Reverse(reverseCharArray, begin, end);//调整begin的位置,end的位置,end需要+1,begin和end位于同样的位置begin = ++end;} else {//如果begin指向字符不为空格,而end指向字符不为空格end++;}}if (end == reverseCharArray.length) {end--;Reverse(reverseCharArray, begin, end);}//将reverseCharArray转换为字符串String string = String.valueOf(reverseCharArray);return string;}public char[] Reverse(char[] charArray, int begin, int end) {if (charArray == null) {return null;}while (begin < end) {char temp = charArray[begin];charArray[begin] = charArray[end];charArray[end] = temp;begin++;end--;}return charArray;}}
阅读全文
0 0
- 剑指offer面试题42_1翻转单词顺序(java实现)
- 剑指Offer面试题42:翻转单词顺序;左旋转字符串 Java实现
- 《剑指Offer》面试题:翻转单词顺序
- 剑指Offer----面试题42(1):翻转单词顺序
- 剑指offer 面试题42 翻转单词顺序
- (剑指Offer)面试题45:翻转单词顺序列
- 【剑指offer】面试题58(1):翻转单词顺序
- 翻转单词顺序(面试题 42)
- 剑指offer面试题42翻转单词顺序VS左旋字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- 【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
- [剑指offer]面试题42:翻转单词顺序,左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 | 左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 《剑指Offer》学习笔记--面试题42:翻转单词顺序VS坐旋转字符串
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 剑指offer-面试题42:翻转单词顺序VS左旋转字符串
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- 如何在阿里云上安装JDK、Tomcat以及其配置过程
- Junit测试出现异常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util.
- 命令行操作oracle,显示英文而不是中文
- MySQL优化(连接优化和缓存优化)
- Android Framework启动流程分析
- 剑指offer面试题42_1翻转单词顺序(java实现)
- Android 文件系统之 superblock/Inode/Inode table
- 91. Decode Ways
- webpack构建React应用五:使用webpack Loaders 模块加载器(三)
- OACLE 个人常用函数总结
- 设计模式其中的相似模式的区别总结
- JPA EntityManager的四个主要方法 ——persist,merge,refresh和remove
- MyBatis-Oracle-selectKey返回主键
- 命令代换及eval命令