Swift-翻轉單詞順序

題目:輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。為簡單起見,標點符號和普通字母一樣處理。例如輸入字符串"I am a student.",則輸出"student. a am I".
核心代碼:
<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 reverseSentence(str:String) -> String {
    var strArr:[Character] = [Character]()
    for c in str.characters {
        strArr.append(c)
    }
    reversePosition(strArr: &strArr, begin: 0, end: str.characters.count - 1)
    
    var start:Int = 0
    var end:Int = 0
    
    
    while end < strArr.count {
        if String(strArr[start]) == " " {
            start += 1
            end += 1
        } else if String(strArr[end]) == " " {
             reversePosition(strArr: &strArr, begin: start, end: end-1)
             start = end
        } else {
            end += 1
        }
    }
    
    return String(strArr)
    
}`</code></pre>

測試代碼:
<pre><code>var orginalStr:String = "I am FlyElephant" var reverseString:ReverseString = ReverseString() var reverseResult:String = reverseString.reverseSentence(str: orginalStr) print("反轉之后的字符串---\(reverseResult)---")</code></pre>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容