Str::slice_chars() is O(end), not O(end - begin)