package test;

/**
* 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。 请实现字符串左旋转的函数。
* 要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*
* @author Zealot
*
*/
public class MS_26 {
private void rotateString(String s, int rotate) {
System.out.println("翻转前的字符串"+s);
char temp;
char[] c = s.toCharArray();
for(int i = 0, j = rotate - 1; i < j; i++, j--) {
temp = c[i];
c[i] = c[j];
c[j] = temp;
}
for(int i = rotate, j=c.length - 1; i < j; i++,j--){
temp = c[i];
c[i] = c[j];
c[j] = temp;
}
for(int i = 0, j=c.length - 1; i < j; i++,j--){
temp = c[i];
c[i] = c[j];
c[j] = temp;
}
/*for(int i =0 ; i < c.length; i++) {
System.out.print(c[i]);
}*/
System.out.println("翻转后的字符串"+String.valueOf(c));
} public static void main(String[] args) {
int rotate=2;
String s = "abcdef";
MS_26 ms26 = new MS_26();
ms26.rotateString(s, rotate); }
}

【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。的更多相关文章

  1. 微软100题第51题:和为n连续正数序列

    题目:输入一个正数n,输出全部和为n连续正数序列.比如输入15,因为1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. 方法一:记录序列长度.推断首项是否满足条 ...

  2. C#核编之字符串类型介绍与操作

    一.关于字符串操作的方法 System.String类提供了很多工具方法,包括返回字符数据长度,查找当前字符串中的子字符串和转换大小写等方法. 在String类中常用的比较字符串的方法主要有Compa ...

  3. C# 字符串类型介绍与操作

    一.关于字符串操作的方法 System.String类提供了很多工具方法,包括返回字符数据长度,查找当前字符串中的子字符串和转换大小写等方法. 在String类中常用的比较字符串的方法主要有Compa ...

  4. IT公司100题-26-左旋转字符串

    问题描述: 给定字符串和左旋的字符数,写程序实现字符串的左旋操作.例如对于字符串”12345678″, 左旋转4个字符后,变成”56781234″.要求时间复杂度为O(n),空间复杂度O(1).   ...

  5. C++异常安全的赋值运算符重载 【微软面试100题 第五十五题】

    题目要求: 类CMyString的声明如下: class CMyString { public: CMyString(char *pData=NULL); CMyString(const CMyStr ...

  6. 数据结构+算法面试100题~~~摘自CSDN

    数据结构+算法面试100题~~~摘自CSDN,作者July 1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调 ...

  7. GO语言的进阶之路-Golang字符串处理以及文件操作

    GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...

  8. Go面试题精编100题

    Golang精编100题 选择题 1.   [初级]下面属于关键字的是()A. funcB. defC. structD. class 参考答案:AC 2.   [初级]定义一个包内全局字符串变量,下 ...

  9. Golang字符串处理以及文件操作

    一.整数 1.int与uint的初值比较以及其大小. 1 /* 2 #!/usr/bin/env gorun 3 @author :xxxx 4 Blog:http://www.cnblogs.com ...

随机推荐

  1. git -- 简单命令

    1.git init    当前目录初始化   2.git  status  检查当前文件状态   Changes to be committed” 这行下面的,就说明是已暂存状态 Changed b ...

  2. JVM堆内存的分代

    虚拟机的堆内存共划分为三个代:年轻代(Young Generation).年老代(Old Generation)和持久代(PermanentGeneration).其中持久代主要存放的是Java类的类 ...

  3. iOS Contact框架功能研究

    兄弟们,直接复制,感谢度娘,感谢谷哥!!! 1.读取联系人通讯录 /** *  读取联系人通讯录 */ -(NSMutableArray*)getContactList{ NSMutableArray ...

  4. jQuery:validate表单验证基本使用

    jquery.validate是jquery的一个验证框架,可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法! 这里先从介绍简单的使用方法:jquery.validate.js下载地址 1. ...

  5. android基础知识普及

    1.密度问题及相互转换 测试机 philips w732 480X800 density 1.5 scaledDensity 1.6500001 通过 context.getResources().g ...

  6. mysql中函数greatest 与MAX区别

    greatest (a,b,c,d,d)max(a) 这样就能看明白了,greatest 求的是某几列的最大值,横向求最大(一行记录)max(a) 一看就明白了,是给纵向求最大(多行记录).

  7. [Android Pro] Android 手机root 并 安装 BusyBox pro 和 Android Terminal Emulator

    Android root 工具:http://www.z4root.cn/yijianrootshouji/ 推荐的是:root精灵手机版 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说 ...

  8. calibre,完成对各种格式的电子书籍的管理和格式转换及同步

    Calibre是免费的电子书制作.阅读软件,源代码开放,拥有跨平台的设计,支持多个基于不同系统的便携式移动设备,包括苹果iPhone.Amazon电子书等设备.它是一个完整的电子图书馆,包括图书馆管理 ...

  9. Informatica 常用组件Source Qualifier之六 外部联接

    可以使用源限定符和应用程序源限定符转换在相同的数据库中执行两个源的外部联接.当 PowerCenter 执行外部联接时,它将返回其中一个源表的所有行和另一个源表中匹配联接条件的行. 如果您需要联接两个 ...

  10. docker仓库操作

    1.登陆注册 docker login 2.搜索镜像 docker search xxx 3.上传镜像 docker push 镜像名:标签或者镜像ID 4.下载镜像 docker pull 镜像名: ...