题目描述
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
1. 字符串拼接
代码实现
/**
* @Classname Solution
* @Description TODO
* @Date 2019/12/22 13:23
* @Author SonnSei
*/
public class Solution {
public String LeftRotateString(String str,int n) {
if(str == null || str.length()==0 || n<0) return "";
if(str.length()==1 || n == 0)return str;
// 注意这里是n%str.length(),有一次写反了
int move = n%str.length();
return str.substring(move)+str.substring(0,move);
}
}
复杂度分析
时间复杂度:
空间复杂度:字符串的substring
也会生成新的对象,字符串有位的话,空间复杂度可以看做是吧
来源:CSDN
作者:demo20191209
链接:https://blog.csdn.net/weixin_40602200/article/details/103721278