他のアルゴリズム-043-文字列を左回転

記事のディレクトリ

タイトル説明

左回転(ROL)と呼ばれるアセンブリ言語命令のシフトがあり、そして今、この命令は、文字列操作の結果によってシミュレートされ、簡単なタスクがあります。指定された文字列Sの場合、あなたはKビットのシリアル出力した後、その左の円を入れました。例えば、文字列S =「abcXYZdef」は、三つ、即ち「XYZdefabc」後に必要な出力結果を左回転させました。それは単純ではないですか?OK、それを得ます!

分析

  • 移動させる方法。 l e n g t h % n 長さ\%nを 後ろ移動の数。O(N)の時間計算量は、空間的複雑度はO(1)です。
  • 方法2:反転。文字列全体の反転前 l e n g t h l e n g t h % n 長さ・長さ\%nを 列反転、後 l e n g t h % n 長さ\%nを 反転。

コード

# -*- coding:utf-8 -*-
class Solution:
    def LeftRotateString(self, s, n):
        # write code here
        
        if not s:
            return ''
        
        ROL = n%len(s)
        return s[ROL:]+s[:ROL]
公開された219元の記事 ウォン称賛85 ビュー14万+

おすすめ

転載: blog.csdn.net/z_feng12489/article/details/103599927