中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LeetCode中如何實現左旋轉字符串

發布時間:2021-12-15 14:01:46 來源:億速云 閱讀:100 作者:小新 欄目:大數據

這篇文章主要介紹LeetCode中如何實現左旋轉字符串,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

題目描述

字符串的左旋轉操作是把字符串前面的若干個字符轉移到字符串的尾部。請定義一個函數實現字符串左旋轉操作的功能。比如,輸入字符串"abcdefg"和數字 2,該函數將返回左旋轉兩位得到的結果"cdefgab"。

  • 1 <= k < s.length <= 10000
               

題目樣例

               

示例

  • 輸入: s = "abcdefg", k = 2

  • 輸出: "cdefgab"

  • 輸入: s = "lrloseumgh", k = 6

  • 輸出: "umghlrlose"

               

題目思考

  1. 如果要求不能使用語言內置函數, 該如何做?
               

解決方案

               

方案 1

               
思路
  • 根據題目描述, 使用 python 的話完全可以直接利用切片, 一行代碼來搞定..
               
復雜度
  • 時間復雜度 O(N): 切片的時間復雜度
  • 空間復雜度 O(1): 只使用了幾個變量
               
代碼
class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        # 切片
        return s[n:] + s[0:n]
                                 

方案 2

               
思路
  • 如果要求不能使用語言內置函數, 又該怎么做呢?
  • 很顯然我們可以從下標為 k 的地方開始遍歷, 將后面的字符依次加入結果中
  • 遍歷到末尾后, 再從 0 開始遍歷到 k, 將這部分字符再加入結果中即可
  • 這種方案跟語言無關, 比較通用, 只是通常情況下沒必要, 因為內置操作會有一些優化, 一般會比自己實現的效率高..
               
復雜度
  • 時間復雜度 O(N): 每個字符只遍歷一次
  • 空間復雜度 O(1): 只使用了幾個變量
               
代碼
class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        res = ''
        for i in range(n, len(s)):
            res += s[i]
        for i in range(n):
            res += s[i]
        return res

以上是“LeetCode中如何實現左旋轉字符串”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奉化市| 太谷县| 太仆寺旗| 浑源县| 于都县| 溆浦县| 永平县| 肃南| 灌阳县| 汽车| 平安县| 渝中区| 盈江县| 杭锦旗| 定安县| 辽阳县| 黑水县| 景谷| 万安县| 教育| 河北省| 库伦旗| 永春县| 奉新县| 商丘市| 舟山市| 招远市| 浮梁县| 分宜县| 翼城县| 拜城县| 贺州市| 芜湖市| 阳曲县| 琼中| 昭觉县| 和平县| 新昌县| 嘉义市| 道孚县| 万全县|