剑指OFFER-左旋转字符串
QuestionSolution
Question
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! 关键词:左移 字符串
Solution
只要保证左移的次数小于字符串长度,新字符串就是s[n:] + s[:n]。 时间复杂度:O() 空间复杂度:O()
Python
class Solution:
def LeftRotateString(self
, s
, n
):
if not s
:
return s
n
= n
%len(s
)
return s
[n
:] + s
[:n
]
C++
class Solution
{
public
:
string
LeftRotateString(string str
, int n
) {
if(str
.empty())
return str
;
n
= n
%str
.size();
return str
.substr(n
,str
.size()) + str
.substr(0, n
);
}
};