# X. Perform String Shifts

You are given a string `s` containing lowercase English letters, and a matrix `shift`, where `shift[i] = [direction, amount]`:\
1\. `direction` can be `0` (for left shift) or `1` (for right shift). \
2\. `amount` is the amount by which string `s` is to be shifted.\
3\. A left shift by 1 means remove the first character of `s` and append it to the end.\
4\. Similarly, a right shift by 1 means remove the last character of `s` and add it to the beginning.\
Return the final string after all operations.

## :innocent: [Solution](https://leetcode.com/explore/featured/card/30-day-leetcoding-challenge/529/week-2/3299/)

{% tabs %}
{% tab title="O(n)" %}

```python
class Solution:
    def stringShift(self, s: str, shift: List[List[int]]) -> str:
        
        for i in range(len(shift)):
            direction,amount = shift[i]
            
            if direction == 0:
                s = s[amount:]+s[:amount]
            
            if direction == 1:
                s = s[-amount:] + s[:-amount]
        
        return s
```

{% endtab %}
{% endtabs %}
