タイトル説明
左回転(ROL)と呼ばれるアセンブリ言語命令のシフトがあり、そして今、この命令は、文字列操作の結果によってシミュレートされ、簡単なタスクがあります。指定された文字列Sの場合、あなたはKビットのシリアル出力した後、その左の円を入れました。例えば、文字列S =「abcXYZdef」は、三つ、即ち「XYZdefabc」後に必要な出力結果を左回転させました。それは単純ではないですか?OK、それを得ます!
分析
- 移動させる方法。前 後ろ移動の数。O(N)の時間計算量は、空間的複雑度はO(1)です。
- 方法2:反転。文字列全体の反転前 列反転、後 反転。
コード
# -*- 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]