題目:字符串的左旋轉(zhuǎn)操作是把字符串前面的若干個(gè)字符轉(zhuǎn)移到字符串的尾部。請(qǐng)定義一個(gè)函數(shù)實(shí)現(xiàn)字符串左旋轉(zhuǎn)操作的功能佩憾。比如輸入字符串"abcdefg"和數(shù)字2挚币,該函數(shù)將返回左旋轉(zhuǎn)2位得到的結(jié)果"cdefgab".
核心代碼:
<pre><code>`
func reversePosition(strArr:inout [Character],begin:Int,end:Int) {
var low:Int = begin
var high:Int = end
while low < high {
swap(&strArr[low], &strArr[high])
low += 1
high -= 1
}
}
func leftRoateString(str:String,len:Int) -> String {
var strArr:[Character] = [Character]()
for c in str.characters {
strArr.append(c)
}
reversePosition(strArr: &strArr, begin: 0, end: len - 1)
reversePosition(strArr: &strArr, begin: len, end: strArr.count - 1)
reversePosition(strArr: &strArr, begin: 0, end: strArr.count - 1)
return String(strArr)
}`</code></pre>
測(cè)試代碼:
<pre><code>var roateResult:String = reverseString.leftRoateString(str: "abcdefg", len: 2) print("FlyElephant-左旋轉(zhuǎn)之后的字符串---\(roateResult)")
</code></pre>