【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – 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左旋转字符串相关推荐
- 剑指offer面试题[42]-反转单词顺序VS左旋转字符串
题目1: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=&quo ...
- [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串
面试题42:翻转单词顺序 VS左旋转字符串 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...
- 剑指 Offer 笔记: T58 - I. 翻转单词顺序
T58 - I. 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student. &qu ...
- 剑指Offer:翻转单词顺序 vs 左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内部的顺序不变.为简单起见 ,标点符号和普通字母一样处理.例如输入字符串"I am a student. ",则输出" ...
- 翻转单词顺序与左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序.但是单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a student.",则输出" ...
- 翻转单词顺序和左旋转字符串
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理. 例如输入字符串"I am a student.",则输出"stu ...
- 剑指offer java版 test3—从尾到头打印链表
标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...
- 剑指Offer——(44)翻转单词顺序列
题目描述: 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"s ...
- 剑指offer java版 test42—找出和为S的两个数,左右夹逼法(双指针法)
前言:受上一题的启发,这题自己也编出来了.在碰到这种有序数列的时候,经常会用到双指针法,一个指左边,一个指右边,然后依照规则移动,增加或缩小范围.很实用. 题目: 输入一个递增排序的数组和一个数字S, ...
最新文章
- Android app 启动页尺寸大小 忘记了怎么办
- 人工智能的产业落地经验!
- golang 代码实现 修改配置文件
- 光流 | 光流交流群
- 收集Cocos2d提供的字体
- RedissonClient 缓存Bug
- java记事本保存_JAVA记事本关于保存
- kali 安装sogou输入法(kali 版本介于16.1-18.2)
- 高等数学学习指导_学习A-Level应该如何选课?
- 编程入门先要学什么?打怪升级走起来!
- wi-fidns服务器未响应,192.168.31.1登录界面
- 《林林数据结构笔记》线段树求数组区间和,单点更新,区间更新+lazy思想
- Sails框架知识点
- HTML5之Worker用法
- css hack *html,css hack 大全 各个浏览器的css
- Android7.1 控制背光流程
- 招商信诺人寿2020年理赔年报启示:重疾保障仍显不足
- 【论文翻译】Conv-MPN
- 中国地质大学(武汉)地信GIS考研(891、892)经验分享
- 服务器删除登录日志文件,CentOS查看登录日志及其它安全日志 清空删除系统日志的方法...
热门文章
- 简述用决策表设计测试用例的步骤_决策表快速入门
- join为什么每个字符都分割了 js_JS截取与分割字符串常用技巧总结
- python中import numpy_Python开发:NumPy学习(一)ndarray数组
- jmeter constant timer 如何添加_基于jmeter+perfmon的稳定性测试记录
- 1、计算机图形学——2D变换与齐次坐标
- C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)
- opencv打开raw格式图像
- 高中必背88个数学公式_高中常考的88个数学公式,全部整理给你,赶紧收藏一下!...
- 报告称中国出境游客移动支付消费首次超现金
- 深入struts2.0(七)--ActionInvocation接口以及3DefaultActionInvocation类