I know there are different solutions for this problem but why is a recursive solution so slow? I get Time Limit Exceeded error using the following solution. Is there anyway to speed it up?

```
public class Solution {
public String reverseString(String s) {
if(s.length() == 0 || s.length() == 1) return s;
int length = s.length();
return s.substring(length-1) + reverseString(s.substring(0, length-1));
}
}
```