之前我們做個(gè)一道左旋轉(zhuǎn)字符串的問(wèn)題, 今天看一道左旋轉(zhuǎn)字符串的問(wèn)題
如果你想知道什么題? 既然你誠(chéng)心誠(chéng)意的發(fā)問(wèn)了, 我就大發(fā)慈悲的告訴你!
題目: 給一個(gè)數(shù)組 s , 數(shù)字k, 把數(shù)組轉(zhuǎn)換成,就是一個(gè)數(shù)組通過(guò)K的值把數(shù)組后K位移到前面。
例如:
s = [1, 2, 3, 4, 5, 6, 7, 8, 9], k=3, 返回 [7, 8, 9, 1, 2, 3, 4, 5, 6]
s = [1, 2, 3, 8, 9,10], k=3, 返回 [8, 9, 10, 1, 2, 3]
思路都是, 數(shù)組切割再拼接
方法1:
肯定要用swift的特性啦, 這次用到這個(gè)兩個(gè)函數(shù)
dropLast, suffix
這種方法最簡(jiǎn)潔, 一句代碼即可
func change(_ s: [Int], _ n: Int) -> [Int] {
return s.suffix(n) + s.dropLast(n)
}
方法2:
切割拼接
func change(_ s: [Int], _ n: Int) -> [Int] {
if n < 0 || n > s.count {
return s;
}
return ([Int])(s[s.count - n..<s.count] + s[0..<s.count - n])
}