parameters: (self, S, shifts)
return_statement: return "".join(result)
docstring: :type S: str
          :type shifts: List[int]
          :rtype: str
docstring_summary: :type S: str
          :type shifts: List[int]
          :rtype: str
docstring_tokens: : type S : str : type shifts : List [ int ] : rtype : str
function: def shiftingLetters(self, S, shifts):
          """
          :type S: str
          :type shifts: List[int]
          :rtype: str
          """
          result = []
          times = sum(shifts) % 26
          for i, c in enumerate(S):
              index = ord(c) - ord('a')
              result.append(chr(ord('a') + (index+times) % 26))
              times = (times-shifts[i]) % 26
          return "".join(result)
function_tokens: def shiftingLetters ( self , S , shifts ) : result = [ ] times = sum ( shifts ) % 26 for i , c in enumerate ( S ) : index = ord ( c ) - ord ( 'a' ) result . append ( chr ( ord ( 'a' ) + ( index + times ) % 26 ) ) times = ( times - shifts [ i ] ) % 26 return "" . join ( result )