闲来无事,想起上学时数据结构课程中有个字符串位移的小算法挺有意思,今天写了下,就测试了一个字符串,纯属娱乐。
public class Offset {
public static void swap(char [] chars , int position1 , int position2){
if(position1 < chars.length && position2 < chars.length){
char t = chars[position1];
chars[position1] = chars[position2];
chars[position2] = t;
}
}
public static void reverse(char [] chars , int begin , int end){
int i = begin;
if (end < chars.length)
while (i < end) {
swap(chars , i++ , end--);
}
}
public static void offset(char [] chars , int n){
n = n % chars.length;
reverse(chars , 0 , n - 1);
reverse(chars, n, chars.length - 1);
reverse(chars, 0, chars.length - 1);
}
public static void main(String[] args) {
char [] a = "abcdefg".toCharArray();
offset(a , 3);
for(char ch : a)
System.out.print(ch);
}
}