Easy
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:
1 <= s.length <= 100
s
consists of characters with ASCII values in the range [33, 122]
.s
does not contain '\"'
or '\\'
.public 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);
}
}