3617. Find The Original Typed String I¶
Difficulty: Easy
LeetCode Problem View on GitHub
3617. Find the Original Typed String I
Easy
Alice is attempting to type a specific string on her computer. However, she tends to be clumsy and may press a key for too long, resulting in a character being typed multiple times.
Although Alice tried to focus on her typing, she is aware that she may still have done this at most once.
You are given a string word, which represents the final output displayed on Alice's screen.
Return the total number of possible original strings that Alice might have intended to type.
Example 1:
Input: word = "abbcccc"
Output: 5
Explanation:
The possible strings are: "abbcccc", "abbccc", "abbcc", "abbc", and "abcccc".
Example 2:
Input: word = "abcd"
Output: 1
Explanation:
The only possible string is "abcd".
Example 3:
Input: word = "aaaa"
Output: 4
Constraints:
1 <= word.length <= 100wordconsists only of lowercase English letters.
Solution¶
class Solution {
public int possibleStringCount(String word) {
int n = word.length();
Set<String> set = new HashSet<>();
set.add(word);
int i = 0;
while (i < n) {
int j = i;
while (j < n && word.charAt(j) == word.charAt(i)) j++;
int length = j - i;
if (length > 1) {
for (int k = 1; k < length; k++) {
String res = word.substring(0, i) + word.substring(i, i + k) + word.substring(j);
set.add(res);
}
}
i = j;
}
return set.size();
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here