String or Array Rotation
Last updated
Was this helpful?
Last updated
Was this helpful?
将一个字符串分成X
和Y
两个部分,在每部分字符串上定义反转操作,如X^T
,即把X的所有字符反转(如,X="abc"
,那么X^T="cba"
),那么就得到下面的结论:(X^TY^T)^T=YX
,显然就解决了字符串的反转问题。
例如,字符串 "abcdef"
,若要让"def"
翻转到"abc"
的前头,只要按照下述3个步骤操作即可:
首先将原字符串分为两个部分,即X: "abc"
,Y: "def"
;
将X
反转,X -> X^T
,即得:abc -> cba
;将Y
反转,Y -> Y^T
,即得:def -> fed
。
反转上述步骤得到的结果字符串X^TY^T
,即反转字符串cbafed
的两部分(cba
和fed
)给予反转,cbafed
得到defabc
,形式化表示为(X^TY^T)^T=YX
,这就实现了整个反转。
Array Rotate Template
-