Given a string and an offset, rotate string by offset. (rotate from left to right)

Example

Given "abcdefg".

offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"

分析:利用 (A^TB^T)^T = BA
 1 public class Solution {
 2     /**
 3      * @param str: an array of char
 4      * @param offset: an integer
 5      * @return: nothing
 6      */
 7     public void rotateString(char[] str, int offset) {
 8         if (str == null || str.length <= 1) return;
 9         offset = offset % str.length;
10         if (offset == 0) return;
11
12         int p = str.length - 1 - offset;
13
14         swapFromIToJ(str, 0, p);
15         swapFromIToJ(str, p + 1, str.length - 1);
16         swapFromIToJ(str, 0, str.length - 1);
17     }
18
19     public void swapFromIToJ(char[] str, int i, int j) {
20         while (i < j) {
21             char temp = str[i];
22             str[i] = str[j];
23             str[j] = temp;
24             i++;
25             j--;
26         }
27     }
28 }



转载于:https://www.cnblogs.com/beiyeqingteng/p/5645642.html

Rotate String相关推荐

  1. 62 旋转字符串(Rotate String)

    文章目录 1 题目 2 解决方案 2.1 思路 2.2 时间复杂度 2.3 空间复杂度 3 源码 1 题目 题目:旋转字符串(Rotate String) 描述:给定一个字符串str和一个偏移量,根据 ...

  2. leetcode 796. Rotate String | 796. 旋转字符串(KMP)

    题目 https://leetcode.com/problems/rotate-string/ 题解 左神讲的 KMP class Solution {public boolean rotateStr ...

  3. leetcode 796. 旋转字符串(Rotate String)

    目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结 ...

  4. Leetcode796.Rotate String旋转字符串

    给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转操作之后,A 能变成B ...

  5. IM4Java + GraphicsMagick 实现高清图片剪裁处理

    2019独角兽企业重金招聘Python工程师标准>>> 简单介绍 GraphicsMagick是ImageMagick的一个分支,相对于ImageMagick而言,TA处理速度更快, ...

  6. 程序员编程艺术第一章(第二节)

    第二节:两指针逐步翻转 思路: abc defghi,要 abc 移动至最后 abc defghi->def abcghi->def ghiabc 定义俩指针, p1 指向 ch[0], ...

  7. React Native StyleSheet 样式属性

    2019独角兽企业重金招聘Python工程师标准>>> 简介 React Native StyleSheet 提供一系类的对样式(类似css)属性. 其中包括 Layout 布局相关 ...

  8. 从零学React Native之07View

    View 组件是React Native最基本的组件.绝大部分其他React Native 组件. View组件的颜色和边框 backgroundColor 键用来指定颜色. RN 0.19版本开始, ...

  9. SpringBoot 集成 thumbnailator (图片缩放,区域裁剪,水印,旋转,保持比例)保姆级教程(含代码)

    Thumbnailator 是 Google 开源的图片处理库,支持:图片缩放,区域裁剪,水印,旋转,保持比例.详细介绍可以百度或官网,话不多说,直接上代码,具体要结合自己的业务需要进行使用(有些复杂 ...

最新文章

  1. day4 匿名函数、装饰器、生成器、迭代器、内置函数、 json 与 pickle 模块
  2. linux下单节点oracle数据库间ogg搭建
  3. spring中aop设计与实现
  4. Android多线程源码学习笔记一:handler、looper、message、messageQueue
  5. android 版本28 通知栏图标,【专题分析】应用图标、通知栏适配
  6. [No0000166]CPU的组成结构及其原理
  7. (转)海岸线提取完成, 海浪排岸效果
  8. 软考网络管理员学习笔记1之第一章计算机硬件基础
  9. asp.net页面的验证码代码
  10. 计算机编程关键字一,和计算机编程有关的101条伟大的名言
  11. Linux下elasticsearch的安装与使用
  12. 链路层发现协议LLDP
  13. 新手学堂之有刷/无刷动力电调与马达知识
  14. yocto的hello world
  15. 不确定性,进化与经济理论
  16. android字母数生成器,随机数生成器app下载-随机数生成器 安卓版v1.0-PC6安卓网
  17. 小组项目的初步构建与需求分析
  18. SQL语句(四)联表查询
  19. linux序列拼接软件,EST序列的聚类、拼接以及纠错是怎样进行的,推荐使用那些软件?!...
  20. 晶体振荡器与晶体谐振器的区别

热门文章

  1. 【牛客 - 188D 】愤怒(01滚动数组优化dp,括号匹配方案个数,tricks)
  2. 【牛客 - 330F】Applese 的QQ群(拓扑排序,二分)
  3. 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】小乐乐切割方块(思维,水题)
  4. matlab计算流函数,hanyeah
  5. 阿里mysql 二进制_Mysql binlog 之阿里canal
  6. plan explorer mysql_plan explorer支持oracle吗
  7. linux-如何限制普通用户的磁盘使用空间-磁盘配额quota,Linux系统下如何进行磁盘配额Quota的设置...
  8. 【算法系列之三】单链表反转
  9. JSP 之输出九九乘法表
  10. 1151压力变送器型号_日本进口横河EJA530E压力变送器型号解读!