917. Reverse Only Letters

Difficulty:
Related Topics:
Similar Questions:

    Problem

    Given a string s, reverse the string according to the following rules:

    Return s** after reversing it**.

      Example 1:

    Input: s = "ab-cd"
    Output: "dc-ba"
    

    Example 2:

    Input: s = "a-bC-dEf-ghIj"
    Output: "j-Ih-gfE-dCba"
    

    Example 3:

    Input: s = "Test1ng-Leet=code-Q!"
    Output: "Qedo1ct-eeLg=ntse-T!"
    

      Constraints:

    Solution (Java)

    class Solution {
        public String reverseOnlyLetters(String s) {
            char[] array = s.toCharArray();
            int i = 0;
            int j = array.length - 1;
            while (i < j) {
                if (Character.isLetter(array[i]) && Character.isLetter(array[j])) {
                    char temp = array[i];
                    array[i++] = array[j];
                    array[j--] = temp;
                } else if (Character.isLetter(array[i])) {
                    j--;
                } else if (Character.isLetter(array[j])) {
                    i++;
                } else {
                    i++;
                    j--;
                }
            }
            return new String(array);
        }
    }
    

    Explain:

    nope.

    Complexity: