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. win7下显示linux文本文件不换行
  2. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #6 使用localmodconfig缩短编译时间...
  3. javase-NIO
  4. 互联网常识(持续更新)
  5. 化浆池是什么东西_一种双工位浆化池的制作方法
  6. 读取properties
  7. delphi开发LINUX程序,DELPHI开发LINUX包
  8. 太原计算机专业专科大学排名,太原【计算机学校】排名
  9. 根域名服务器意味着什么?(转)
  10. axis2调用webservice
  11. opcdaclient 对com组件的调用返回了错误hresult_【分享】易语言编程常见错误新手篇...
  12. java万年历代码_JAVA实现的简单万年历代码
  13. 百度深度学习工程师认证(已通过)
  14. 佳能相机G7 Mark Ⅱ (测光与对焦)
  15. 安全专业委员会发言_安全专业委员会发言稿
  16. HC05蓝牙串口通信模块
  17. 【数据库】FaceDataset常用的人脸数据库
  18. 快速校验 input内容规则
  19. 基于国服DOTA2的反和谐vpk
  20. 组态王bitset用法_组态王使用常遇到问题

热门文章

  1. 【ZOJ - 2836 】Number Puzzle (容斥原理)
  2. 【CodeForces - 195A】Let's Watch Football (追及问题,模拟)
  3. php获取post全部数据,PHP获取POST数据的几种方法汇总_PHP教程
  4. java web svn_如何搭建svnadmin,一个简单的svnWEB页面
  5. Android入门(六) | Activity 的启动模式 及 生产环境中关于 Activity 的小技巧
  6. sizeof运算符运算结果小汇
  7. Pandas对象的层次化索引——【from_tuples()、from_arrays()、from_product()、swaplevel()、sort_index()、sort_values()】
  8. leetcode9 回文数
  9. 在GCC和Visual Studio中使用hash_map
  10. MachineLearning(3)-流型