剑指offer——左旋转字符串
问题描述
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
思路分析
1.先判断输入字符串的长度,若输入的字符串个数小于1,或者想要左移的字符个数大于字符串长度,则返回这个数组。
2.使用字符串相关的基本方法解决即可。使用substring(beginIndex,endIndex)
如
str=abc123xyz n=3
a b c 1 2 3 x y z
^ ^
n str.length 得到123xyz
a b c 1 2 3 x y z
^ ^
0 n 得到abc
将123xyz + abc 即可。
代码
public class Solution {
public String LeftRotateString(String str,int n) {
if (n > str.length() || str.length() < 1) {
return str;
}
String result = str.substring(n,str.length());
result += str.substring(0,n);
return result;
}
}