Skip to content

Commit 2fc5fb2

Browse files
solves reverse only letters
1 parent f613d9b commit 2fc5fb2

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@
247247
| 905 | [Sort Array by Parity](https://leetcode.com/problems/sort-array-by-parity) | |
248248
| 908 | [Smallest Range I](https://leetcode.com/problems/smallest-range-i) | [![Java](assets/java.png)](src/SmallestRangeI.java) |
249249
| 914 | [X of a kind in a Deck of Cards](https://leetcode.com/problems/x-of-a-kind-in-a-deck-of-cards) | [![Java](assets/java.png)](src/XOfAKindInADeckOfCards.java) |
250-
| 917 | [Reverse Only Letters](https://leetcode.com/problems/reverse-only-letters) | |
250+
| 917 | [Reverse Only Letters](https://leetcode.com/problems/reverse-only-letters) | [![Java](assets/java.png)](src/ReverseOnlyLetters.java) |
251251
| 922 | [Sort Array by Parity II](https://leetcode.com/problems/sort-array-by-parity-ii) | |
252252
| 925 | [Long Pressed Name](https://leetcode.com/problems/long-pressed-name) | |
253253
| 929 | [Unique Email Addresses](https://leetcode.com/problems/unique-email-addresses) | |

src/ReverseOnlyLetters.java

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public class ReverseOnlyLetters {
2+
public static String reverseOnlyLetters(String s) {
3+
StringBuilder result = new StringBuilder();
4+
int tail = s.length() - 1;
5+
while (tail >= 0 && !Character.isAlphabetic(s.charAt(tail))) tail--;
6+
7+
for (int head = 0 ; head < s.length() ; head++) {
8+
if (Character.isAlphabetic(s.charAt(head))) {
9+
result.append(s.charAt(tail--));
10+
while (tail >=0 && !Character.isAlphabetic(s.charAt(tail))) tail--;
11+
} else result.append(s.charAt(head));
12+
}
13+
14+
return result.toString();
15+
}
16+
}

0 commit comments

Comments
 (0)