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 '\\'
.class Solution {
fun reverseOnlyLetters(s: String): String {
val array = s.toCharArray()
var i = 0
var j = array.size - 1
while (i < j) {
if (Character.isLetter(array[i]) && Character.isLetter(array[j])) {
val 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 String(array)
}
}