题目:
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例 1:
输入: s = "abcdefg", k = 2
输出: "cdefgab"
示例 2:输入: s = "lrloseumgh", k = 6
输出: "umghlrlose"来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof
思路:
对字符串进行修改,当然首选StringBuilder,先截取前面的,再删除前面的,最后组合起来。
注意:
1.substring的返回值是String类型,要用String类型去接收!!!
2.delete的返回值是原数据类型,且结果是修改后的数据。
代码:
package JianZhiOffer;
public class Day03_2 {
public static void main(String[] args) {
Solution03_2 solution03_2=new Solution03_2();
System.out.println(solution03_2.reverseLeftWords("abcdefg",3));
}
}
class Solution03_2 {
public String reverseLeftWords(String s, int n) {
if(s.length()==1){
return s;
}
if(n>s.length()){
n=s.length();
}
StringBuilder stringBuilder=new StringBuilder(s);
String temp=stringBuilder.substring(0,n);//注意返回的是String类型
stringBuilder.delete(0,n);//删除字符串的部分,并且返回删除后的结果(即此时StringBuilder的值)
stringBuilder.append(temp);
return stringBuilder.toString();
}
}
结果: