LintCode 8 Rotate String – Python 3 ( Week 11 – 11)

 class Solution:
    """
    @param str: An array of char
    @param offset: An integer
    @return: nothing
    """
    def rotateString(self, s, offset):
        # write your code here
        if len(s) < 2 or offset % len(s) == 0:
            return s
            
        offset = offset % len(s)
        
        self.reverse(s, 0, len(s) - 1 - offset)
        self.reverse(s, len(s) - offset, len(s) - 1)
        self.reverse(s, 0, len(s) - 1)
        return s
        
        
        
    def reverse(self, s, start, end):
        while start < end:
            s[start], s[end] = s[end], s[start]
            start += 1
            end -= 1

Time O(n). Space O(1).

Leave a comment

Design a site like this with WordPress.com
Get started