Rotate String

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频播放、录音、拍照

音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放。前者主要指的是一些短音频播放&#xff0c;通常作为点缀音频&#xff0c;对于这类音频不需要进行进度、循环等控制。后者指的是一些较长的音频&#xff0c;通常是主音频&#xff0c;对于这些音频的播放通常需要进行精…

python 递归函数与循环的区别_提升Python效率之使用循环机制代替递归函数

斐波那契数列当年&#xff0c;典型的递归题目&#xff0c;斐波那契数列还记得吗&#xff1f;def fib(n):if n1 or n2:return 1else:return fib(n-1)fib(n-2)当然, 为了程序健壮性&#xff0c;加上try...except...def fib(n):if isinstance(n, int):print(兄弟,输入正整数哈)ret…

03_JS数据类型

JS数据类型 基本数据类型 String 字符串类型&#xff0c;申明时用单引号或双引号引起来&#xff0c;两种引号不可嵌套&#xff0c;不可混用 Number 数值型&#xff0c;有两个特殊的数字 Infint:无穷大NaN&#xff1a;非数值型数字&#xff0c;不与任何类型相等 Boolean …

7.5

姓名 崔巍 时间 2016年7月5日 学习内容 最后一次确定同步控制力度等实现细节。 学习了Visual Studio C#软件测试方面的工具。巩固了等价类黑盒测试方法的相关理论&#xff0c;并且学习了集成测试、回归测试的相关内容&#xff0c;并进行了测试。 集成测试&#xff0c;…

python scratch ev3_如何在scratch上连接乐高ev3?

乐高教育的官网有关于EV3使用Python的详细介绍https://education.lego.com/zh-cn/support/mindstorms-ev3/python-for-ev3​education.lego.com来自网易有道Scratch是现在小朋友们最热的编程工具&#xff0c;也是各学校和培训机构对小学生编程的入门首选。网易有道Kada平台是一…

04_JS运算符

JS运算符 一元运算符 -,正负号&#xff0c;对非数值类型做正负操作会先转换成数值型&#xff0c;可以用快速进行类型转换 逻辑运算符 且 &&&#xff0c;从左到右看&#xff0c;一旦返现值为false的表达式立刻返回false&#xff0c;全真为真或 ||&#xff0c;从左到右…

C语言 第八章 函数、指针与宏

一、函数 函数是一个包含完成一定功能的执行代码段。我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段,使之…

ByteBuffer用法小结

在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区.缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型.ByteBuffer是最常用的缓冲区,它提供了读写其他数据类型的方法,且信道…

promise用法_Promise的秘密

写在前面本篇文章将会带大家从分解promise入手&#xff0c;一步步实现一个promise。但阅读之前需要比较熟练地了解了解用法&#xff0c;结合用法看文章可能更容易理解。结构先看一下简单的用法。const promise new Promise((resolve, reject) > {setTimeout(() > {resol…

SpringMVC视图解析器(转)

前言 在前一篇博客中讲了SpringMVC的Controller控制器&#xff0c;在这篇博客中将接着介绍一下SpringMVC视图解析器。当我们对SpringMVC控制的资源发起请求时&#xff0c;这些请求都会被SpringMVC的DispatcherServlet处理&#xff0c;接着Spring会分析看哪一个HandlerMapping定…

05_JS流程控制语句

JS流程控制语句 顺序结构 选择结构 if-else语句 var aprompt(); var bprompt(); var cprompt(); if(a && b || c){alert(); }else if(a || b || c){alert(); }else{alert(); }条件分支语句 var aprompt(); switch(a){case 1:alert("1");break;case 2:al…

ForkJoinPool 学习示例

在JAVA7之前&#xff0c;并行处理数据非常麻烦。第一&#xff0c;你得明确把包含数据的数据结构分成若干份。第二&#xff0c;你要将每个子部分分配给一个独立的线程。第三&#xff0c;你要在恰当的时候对它们进行同步避免不希望的竞争条件&#xff0c;等待所有线程完成&#x…

python深入_Python深入(上)

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01;到现在为止&#xff0c;Python学习已经可以告一段落。下面的部分&#xff0c;我想讨论Python的高级语法和底层实现。这一部分的内容并不是使用Pyt…

06_JS对象

JS对象 创建对象 构造函数&#xff1a;var obj new Object()对象字面量&#xff1a;var obj {}; 不同&#xff1a;对象字面量可以在创建的同时为对象设置属性&#xff0c;最后一个属性后面不要加逗号 对象操作 添加属性&#xff1a;对象名.新属性名 值修改属性&#xf…

BZOJ4107 : [Wf2015]Asteroids

首先将速度相减&#xff0c;变成A在动而B不动&#xff0c;若速度为0则显然永远不会相交。 枚举A的每个点以及B的每条线段&#xff0c;计算这三个点共线的时刻。 将时刻排序&#xff0c;对于每个区间进行三分&#xff0c;用半平面交计算相交面积。 注意特判相交面积为0但是存在交…

Web Service 性能测试工具比较

背景 希望选择一款Web Service性能测试工具&#xff0c;能真实模拟大量用户访问网站时的请求&#xff0c;从而获取服务器当前的请求处理能力&#xff08;请求数/秒&#xff09;。以微信服务器为例&#xff0c;每个用户用独立的登录token&#xff0c;做各种操作&#xff0c;比如…

python中的常量是什么意思_第14p,Python中的常量与注释。

大家好&#xff0c;我是杨数Tos&#xff0c;这是《从零基础到大神》系列课程的第14篇文章&#xff0c;第二阶段的课程&#xff1a;Python基础知识&#xff1a;常量与注释。学习本课程&#xff0c;建议先看一遍&#xff1a;【计算机基础知识】课程。一、Python中的常量1、什么是…

07_JS函数

JS函数 函数声明 使用构造函数 var fun new Function();使用关键字 function 函数名(形参){// 函数体 }匿名函数 var fun1 function(){name "fun1" }函数参数 实参&#xff0c;形参都可以是任意数据类型&#xff0c;浏览器执行时不会检查实参类型和数量&…

cocoapods的安装(这真是一个神奇的东西,每次安装的方法都不一样,而且很容易出现各种各样的错误)...

文章开始之前&#xff0c;建议安装一个显示网速的插件&#xff0c;不然你不知道到底有没有下载&#xff0c;也让生活有一点盼头 1.因为众所周知的原因&#xff08;我dang的行为真的是让人失望&#xff09;&#xff0c;先更换一下ruby镜像源 $ gem sources --remove https://rub…

转】MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码

原博文出自于&#xff1a;http://www.cnblogs.com/xdp-gacl/p/3496161.html        感谢&#xff01; 在MyEclispe中创建Jsp页面&#xff0c;Jsp页面的默认编码是“ISO-8859-1”&#xff0c;如下图所示&#xff1a; 在这种编码下编写中文是没有办法保存Jsp页面的&#…