Skip to content

Commit ef6b5cb

Browse files
solves long pressed name
1 parent 4fa13fa commit ef6b5cb

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@
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) |
250250
| 917 | [Reverse Only Letters](https://leetcode.com/problems/reverse-only-letters) | [![Java](assets/java.png)](src/ReverseOnlyLetters.java) |
251-
| 922 | [Sort Array by Parity II](https://leetcode.com/problems/sort-array-by-parity-ii) | |
252-
| 925 | [Long Pressed Name](https://leetcode.com/problems/long-pressed-name) | |
251+
| 922 | [Sort Array by Parity II](https://leetcode.com/problems/sort-array-by-parity-ii) | [![Java](assets/java.png)](src/SortArrayByParityII.java) |
252+
| 925 | [Long Pressed Name](https://leetcode.com/problems/long-pressed-name) | [![Java](assets/java.png)](src/LongPressedName.java) |
253253
| 929 | [Unique Email Addresses](https://leetcode.com/problems/unique-email-addresses) | |
254254
| 933 | [Number of Recent Calls](https://leetcode.com/problems/number-of-recent-calls) | |
255255
| 937 | [Reorder Data In Log Files](https://leetcode.com/problems/reorder-data-in-log-files) | |

src/LongPressedName.java

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
public class LongPressedName {
2+
public boolean isLongPressedName(String name, String typed) {
3+
char current = name.charAt(0);
4+
for (int i = 0, j = 0, freq = 0, typedFreq = 0 ; i < name.length() && j < typed.length() ; ) {
5+
while (i < name.length() && name.charAt(i) == current) {
6+
i++;
7+
freq++;
8+
}
9+
while (j < typed.length() && typed.charAt(j) == current) {
10+
j++;
11+
typedFreq++;
12+
}
13+
if (typedFreq < freq) return false;
14+
if (i == name.length() && j < typed.length()) return false;
15+
if (j == typed.length() && i < name.length()) return false;
16+
current = i >= name.length() ? ' ' : name.charAt(i);
17+
freq = typedFreq = 0;
18+
}
19+
return true;
20+
}
21+
}

0 commit comments

Comments
 (0)