左旋轉(zhuǎn)字符串
題目描述
字符串的左旋轉(zhuǎn)操作是把字符串前面的若干個字符轉(zhuǎn)移到字符串的尾部顷链。請定義一個函數(shù)實現(xiàn)字符串左旋轉(zhuǎn)操作的功能。比如,輸入字符串"abcdefg"和數(shù)字2况木,該函數(shù)將返回左旋轉(zhuǎn)兩位得到的結(jié)果"cdefgab"。
示例:
1.輸入: s = "abcdefg", k = 2
輸出: "cdefgab"
2.輸入: s = "lrloseumgh", k = 6
輸出: "umghlrlose"
提示:
1 <= k < s.length <= 10000
題目分析
在學(xué)習(xí)CPP的時候?qū)W校oj有類似的題目,這里的提示是K要比字符串的長度要小健无,這就沒意思了荣恐,如果K比字符串長度要大的話,就要進(jìn)行一下操作:
m = s.length % K
這樣做的其實是因為如果K比字符串的長度還要長的話累贤,先旋轉(zhuǎn)K次叠穆,就變回原來的樣子,最后的結(jié)果和旋轉(zhuǎn)m次的結(jié)果一樣臼膏。
class Solution {
fun reverseLeftWords(s: String, n: Int): String {
val m = n%s.length
return s.substring(m,s.length)+s.subSequence(0,m)
}
}