反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I

第一步,翻转句子中的所有字符串,第二步翻转单词顺序

public class _Q42<T> {public char[] ReverseSentence(String str){if(str == null) return null;if(str.length() == 0) return str.toCharArray();char chars[] = str.toCharArray();reverse(chars, 0, str.length() - 1);int start = 0; for(int i=0; i<str.length(); i++){if(chars[i] == ' '){reverse(chars, start, i - 1);start = i + 1;}}reverse(chars, start, str.length() - 1);return chars;}private void reverse(char chars[], int begin, int end){if(chars == null) return;if(begin == end) return;char c;while(begin < end){c = chars[begin];chars[begin] = chars[end];chars[end] = c;begin++;end--;}}public char[] LeftRotateString(String str, int n){if(str == null) return null;char chars[] = str.toCharArray();// 先分段旋转reverse(chars, 0 , n - 1);reverse(chars, n, str.length() - 1);// 最后整体旋转reverse(chars, 0, str.length() - 1);return chars;}}

测试代码:

public class _Q42Test extends TestCase {_Q42<?> reverse = new _Q42();public void test(){String str1 = "I am a student.";System.out.println(reverse.ReverseSentence(str1)); // 需要对返回结果进行非空判断String str2 = "abcdefg";int n = 2;System.out.println(reverse.LeftRotateString(str2, n)); // }}

【剑指offer-Java版】42翻转单词顺序VS左旋转字符串相关推荐

  1. 剑指offer面试题[42]-反转单词顺序VS左旋转字符串

    题目1: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=&quo ...

  2. [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串

    面试题42:翻转单词顺序 VS左旋转字符串 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...

  3. 剑指 Offer 笔记: T58 - I. 翻转单词顺序

    T58 - I. 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student. &qu ...

  4. 剑指Offer:翻转单词顺序 vs 左旋转字符串

    题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内部的顺序不变.为简单起见 ,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出" ...

  5. 翻转单词顺序与左旋转字符串

    题目一:输入一个英文句子,翻转句子中单词的顺序.但是单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student.",则输出" ...

  6. 翻转单词顺序和左旋转字符串

    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理. 例如输入字符串"I am a student.",则输出"stu ...

  7. 剑指offer java版 test3—从尾到头打印链表

    标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...

  8. 剑指Offer——(44)翻转单词顺序列

    题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"s ...

  9. 剑指offer java版 test42—找出和为S的两个数,左右夹逼法(双指针法)

    前言:受上一题的启发,这题自己也编出来了.在碰到这种有序数列的时候,经常会用到双指针法,一个指左边,一个指右边,然后依照规则移动,增加或缩小范围.很实用. 题目: 输入一个递增排序的数组和一个数字S, ...

最新文章

  1. Android app 启动页尺寸大小 忘记了怎么办
  2. 人工智能的产业落地经验!
  3. golang 代码实现 修改配置文件
  4. 光流 | 光流交流群
  5. 收集Cocos2d提供的字体
  6. RedissonClient 缓存Bug
  7. java记事本保存_JAVA记事本关于保存
  8. kali 安装sogou输入法(kali 版本介于16.1-18.2)
  9. 高等数学学习指导_学习A-Level应该如何选课?
  10. 编程入门先要学什么?打怪升级走起来!
  11. wi-fidns服务器未响应,192.168.31.1登录界面
  12. 《林林数据结构笔记》线段树求数组区间和,单点更新,区间更新+lazy思想
  13. Sails框架知识点
  14. HTML5之Worker用法
  15. css hack *html,css hack 大全 各个浏览器的css
  16. Android7.1 控制背光流程
  17. 招商信诺人寿2020年理赔年报启示:重疾保障仍显不足
  18. 【论文翻译】Conv-MPN
  19. 中国地质大学(武汉)地信GIS考研(891、892)经验分享
  20. 服务器删除登录日志文件,CentOS查看登录日志及其它安全日志 清空删除系统日志的方法...

热门文章

  1. 简述用决策表设计测试用例的步骤_决策表快速入门
  2. join为什么每个字符都分割了 js_JS截取与分割字符串常用技巧总结
  3. python中import numpy_Python开发:NumPy学习(一)ndarray数组
  4. jmeter constant timer 如何添加_基于jmeter+perfmon的稳定性测试记录
  5. 1、计算机图形学——2D变换与齐次坐标
  6. C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)
  7. opencv打开raw格式图像
  8. 高中必背88个数学公式_高中常考的88个数学公式,全部整理给你,赶紧收藏一下!...
  9. 报告称中国出境游客移动支付消费首次超现金
  10. 深入struts2.0(七)--ActionInvocation接口以及3DefaultActionInvocation类