Java, 100%, Easy Understand, Two Pointer solution
\n    public String reverseStr(String s, int k) {\n\n        int i = 0; \n        char[] chars = s.toCharArray();\n        while (i < chars.length) {\n         
```\n    public String reverseStr(String s, int k) {\n\n        int i = 0; \n        char[] chars = s.toCharArray();\n        while (i < chars.length) {\n            \n            int end = i + k - 1;\n            if (end > chars.length - 1)\n                end = chars.length - 1;\n            \n            reverse(chars, i, end);\n            \n            i = i + 2 * k;\n        }\n        \n        return new String(chars);\n    }\n\n    private void reverse(char[] chars, int left, int right) {\n        \n        while (left < right) {\n            char tmp = chars[left];\n            chars[left] = chars[right];\n            chars[right] = tmp;\n            left++;\n            right--;\n        }\n    }\n```
['Java']