日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

字符串左旋轉是指從前綴側逆時針移動給定數量的字符并將其添加到后綴側。類似地,字符串的右旋轉意味著給定字符串的字符順時針移動,但與左旋轉正好相反,并且從后綴中選取給定數量的字符并將其添加到字符串的前綴中。在本文中,我們將實現給定字符串的左旋轉和右旋轉的 JavaScript 程序。

問題簡介

在這個問題中,我們得到一個字符串和一個數字。該數字表示我們必須向任一方向旋轉繩子多少次。正如我們對順時針和逆時針旋轉有所了解意味著從給定字符串中從起始或前綴側或從結束或后綴側獲取一些字符,然后從中刪除并添加到字符串的末尾。

字符串的長度和給定字符串中字符的頻率不會改變,只是當前字符串的排列發生變化。

例如,給定一個字符串:apple

那么給定字符串的左旋轉將如下 –

    蘋果

    leapp

    eappl

    蘋果

    我們可以看到給定字符串的第五次旋轉與當前字符串相同,因此不可能再進一步旋轉。

    給定字符串的右旋轉將如下 –

      eappl

      leapp

      普利亞

      蘋果

      我們可以看到給定字符串的第 5 次右旋轉與初始字符串相同,因此如果我們進一步旋轉字符串,不會再出現不同的結果。

      從上面的例子中,我們可以得出結論,通過將字符串向左或右側旋轉其長度大小的次數,最終將得到與初始字符串相同的字符串。因此,如果給出的旋轉次數大于字符串的長度,那么我們可以采用模式,它會給出完全相同的答案。

      方法

      我們已經了解了字符串左右旋轉的基本示例,現在讓我們逐步進行討論,以更好地理解之后將要實現的代碼。

        首先,我們將在一個變量中獲取給定的字符串,并將所需的旋轉次數存儲在另一個變量中。我們也可以打印它們以獲得更好的比較。

        我們將創建兩個函數,第一個用于左旋轉,第二個用于字符串的右旋轉。

        對于每個函數,我們將傳遞給定的字符串和旋轉變量的數量作為參數。

        在左旋轉函數中,我們將獲取包含最后 k 個元素和第二個剩余元素的兩個子字符串,并交換它們的位置。

        在右旋轉函數中,我們將得到包含第一個 k 元素和第二個包含剩余元素的兩個子字符串,并交換它們的位置。

        示例

        // function for left rotation
        function left_rotation(str,k){
        
           // getting prefix elements and remaining elements
           // switiching there place
           var new_str = str.substr(k) + str.substring(0,k);
        
           // printing the rotated string
           console.log("String after kth left rotation is: " + new_str);
        }
        
        // function for right rotation
        function right_rotation(str,k){
        
           // getting suffix elements and remaining elements
           // switiching there place
        
           var new_str = str.substr(str.length - k) + str.substring(0,str.length-k);
           // printing the rotated string
        
           console.log("String after kth rigth rotation is: " + new_str);
        }
        
        // given string
        var str = "apple"
        var k = 2
        
        // printing the given string
        console.log("The given string is: " + str);
        
        // getting left rotation
        
        left_rotation(str,k);
        
        // getting right rotation
        right_rotation(str,k)

        登錄后復制

        注意

        在上面的程序中,我們給出的“k”或旋轉次數小于字符串的大小,如果 k 大于字符串的大小,那么上面的代碼將給出錯誤,但如下我們在介紹部分已經看到,字符串長度重復多次后的旋轉,可以通過給定字符串長度獲取當前數字的眾數來計算,為了安全起見,我們總是可以這樣做 –

        k = k % (str.length)
        

        登錄后復制

        這里,str是給定的字符串。

        時間和空間復雜度

        上述代碼的時間復雜度為 O(N),其中 N 是給定字符串的大小。在上面的代碼中,我們只是獲取字符串字符并以不同的方式分解和添加它們,使得時間復雜度呈線性。

        上面代碼的空間復雜度是O(1),因為我們沒有使用任何額外的空間,只是將一個字符串存儲到另一個字符串中,該空間用于答案,所以沒有使用額外的空間。 p>

        結論

        在本教程中,我們實現了給定字符串的左旋轉和右旋轉的 JavaScript 程序。字符串左旋轉意味著逆時針移動給定數量的字符,字符串右旋轉意味著順時針移動給定數量的字符。我們使用了子字符串的概念,通過子字符串來分解字符串并在另一側添加后綴或前綴。給定程序的時間復雜度為 O(N),空間復雜度為 O(1)。

        以上就是用于左旋轉和右旋轉字符串的 JavaScript 程序的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:javascript 字符串 旋轉 用于 程序
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定