编程珠玑第二章旋转字符串,abcdefg向左旋转3位,变为defgabc,书中的思想是分三步,实现字符串的旋转
实现代码如下
package org.waitingfortime.编程珠玑.c2;
/**
* Created by IntelliJ IDEA.
* User: mazhiyuan
* Date: 12-10-25
* Time: 下午6:39
* 编程珠玑第二章,向左旋转字符串
*/
public class ReverseString {
public static char[] reverse(char[] chars, int i) {
if (i <= 0)
throw new IllegalArgumentException("i must be greater than 0");
i = i % chars.length;
//first step
_reverse(chars, 0, i - 1);
//second step
_reverse(chars, i, chars.length - 1);
//third step
_reverse(chars, 0, chars.length - 1);
return chars;
}
private static void _reverse(char[] chars, int b, int e) {
while (b <= e) {
swap(chars, b, e);
b++;
e--;
}
}
private static void swap(char[] chars, int b, int e) {
char temp = chars[b];
chars[b] = chars[e];
chars[e] = temp;
}
public static void main(String[] args) {
char c[]={'a','b','c','d','e','f','g','h','i'};
System.out.println(java.util.Arrays.toString(ReverseString.reverse(c,5)));
}
}
结果输出为
[f, g, h, i, a, b, c, d, e]
看到结果后我发现这个其实就是将前n个字符截取后拼接到后面么,干嘛还要分三步呢。。。
难道是我没理解旋转的含义么
分享到:
相关推荐
Java课件第二章补充字符串.ppt
第4章 字符串.pptx
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串 abcdef 左旋转 2 位得到字符串 cdefab。请实现字符串左旋转的函数。 要求时间对长度为 n 的字符串操作的复杂度为 O(n),辅助...
C#字符串删除指定字符串|C#字符串删除子字符串
3.如何旋转显示字符串?(Visual C++编程 源代码)3.如何旋转显示字符串?(Visual C++编程 源代码)3.如何旋转显示字符串?(Visual C++编程 源代码)3.如何旋转显示字符串?(Visual C++编程 源代码)3.如何旋转...
Java第6章 字符串 含源代码 Java第6章 字符串 含源代码 Java第6章 字符串 含源代码 Java第6章 字符串 含源代码 Java第6章 字符串 含源代码
第二个是把所有的符合条件的字符串都截取出来,提取出来,比如字符串 string a="ab123456,"ab323456",那么就只要截取2到4之间的字符串,然后存入到了一个列表里,想提取直接读取列表就可以了,非常方便实用哦。
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符两个程序,vs2013已经验证
Java语言程序设计 第6章 字符串 Java语言程序设计(第3版)第06章-字符串全文共31页,当前为第1页。 6.1.1 1 String类 2 3 主要内容 Java语言程序设计(第3版) 格式化输出 StringBuilder类 Java语言程序设计(第3版)第06...
二进制文件字符串修改器,二进制文件字符串修改器,二进制文件字符串修改器
编写程序:从键盘上输入一个包含10个字符的字符串,把该字符串与程序中给定的字符串("bacdbcabca") //依次比较,统计两个字符串对应字符相等的数目。然后输出从键盘上输入的字符串, //并把两个字符串中对应字符不...
C语言二进制字符串与十六进制字符串相互转化,利用MFC框架生成小工具。
字符串 介绍 字符串 介绍 字符串 介绍 字符串 介绍
求两个字符串的最长公共字符串 输出全部位置信息,并输出字符串,相同字符串先输出所有位置信息在输出字符串 测试平台:XP/VS 2008 CN
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match() var str = "123" var reg = RegExp(/3/); if(str.match(reg)){ //包含; } ...
纯C语言实现字符串拆分操作,把字符串拆分成字符串数组,然后再输出。 使用sstream方法,作为底层驱动操作实现非常方便。
必须实现如下操作,字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),...
int strarray cat char arr [str max len] int i char str 把二维arr字符串数组拼接成一个串 i是第一维的长度 存入str int replacate char res int n char const str 产生n个重复的str 串或者字符 存入res ">几个...
字符串 数据结构-字符串全文共87页,当前为第1页。 字符串 字符串的范畴非常广泛; 难题往往在此节出现; 掌握字符串的法门是 。 字符串问题的晦涩代表:KMP、Manacher 数据结构-字符串全文共87页,当前为第2页。 ...