題目:
字元串的左旋轉操作是把字元串前面的若幹個字元轉移到字元串的尾部。請定義一個函數實作字元串左旋轉操作的功能。比如,輸入字元串"abcdefg"和數字2,該函數将傳回左旋轉兩位得到的結果"cdefgab"。
示例 1:
輸入: s = "abcdefg", k = 2
輸出: "cdefgab"
示例 2:
輸入: s = "lrloseumgh", k = 6
輸出: "umghlrlose"
解答:
//方法一:字元串分片(substring)與拼接
//評價:字元串為不可變對象,分片并拼接(+)影響效率
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n,s.length()) + s.substring(0,n);
}
}
//方法二:StringBuffer的append方法拼接字元串效率高
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuffer sb = new StringBuffer();
for(int i=n;i<s.length();i++){
sb.append(s.charAt(i));
}
for(int i=0;i<n;i++){
sb.append(s.charAt(i));
}
return sb.toString();
}
}
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof