Lintcode8 Rotate String solution 題解

【題目描述】

Given a string and an offset, rotate string by offset. (rotate from left to right)

給定一個字符串和一個偏移量,根據偏移量旋轉字符串(從左向右旋轉)

【題目鏈接】

http://www.lintcode.com/en/problem/rotate-string/

【題目解析】

常見的翻轉法應用題,仔細觀察規律可知翻轉的分割點在從數組末尾數起的offset位置。先翻轉前半部分,隨後翻轉後半部分,最後整體翻轉。

源碼分析:異常處理,A爲空或者其長度爲0;offset可能超出A的大小,應模len後再用;三步翻轉法。Python 雖沒有提供字符串的翻轉,但用 slice 非常容易實現,非常 Pythonic!

複雜度分析:翻轉一次時間複雜度近似爲 O(n)O(n)O(n), 原地交換,空間複雜度爲 O(1)O(1)O(1). 總共翻轉3次,總的時間複雜度爲 O(n)O(n)O(n), 空間複雜度爲 O(1)O(1)O(1).

【答案鏈接】

http://www.jiuzhang.com/solution/rotate-string/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章