比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例 1:
输入: s = "abcdefg", k = 2
输出: "cdefgab"
示例 2:
输入: s = "lrloseumgh", k = 6
输出: "umghlrlose"
解法:
方法一:c++库函数,reverse();
reverse (s.begin() , s.end() );括号内是要翻转的区间
方法二:字符串切片
python版本:
class Solution:
def reverseLeftWords(self, s: str, n: int) -> str:
return s[n:] + s[:n]
作者:jyd
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Java版本:
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n, s.length()) + s.substring(0, n);
}
}
作者:jyd
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
方法三:字符串遍历拼接
Java版本:
class Solution {
public String reverseLeftWords(String s, int n) {
int presize=s.length();
int newsize=presize+n;
int N=0;
char[] array = new char[presize + n];
for(int i=n;i<presize;i++){
char ch=s.charAt(i);
array[N++]=ch;
}
N=0;
for(int i=presize-n;i<presize;i++){
char c=s.charAt(N);
array[i]=c;
N++;
}
String newans = new String(array,0,presize);
return newans;
}
}