Skip to content

Commit b511618

Browse files
refactor 642
1 parent d39b19e commit b511618

File tree

1 file changed

+0
-55
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+0
-55
lines changed

src/main/java/com/fishercoder/solutions/_642.java

-55
Original file line numberDiff line numberDiff line change
@@ -7,61 +7,6 @@
77
import java.util.List;
88
import java.util.Map;
99

10-
/**
11-
* 642. Design Search Autocomplete System
12-
*
13-
* Design a search autocomplete system for a search engine. Users may input a sentence (at least one word and end with a special character '#'). For each character they type except '#', you need to return the top 3 historical hot sentences that have prefix the same as the part of sentence already typed. Here are the specific rules:
14-
15-
The hot degree for a sentence is defined as the number of times a user typed the exactly same sentence before.
16-
The returned top 3 hot sentences should be sorted by hot degree (The first is the hottest one). If several sentences have the same degree of hot, you need to use ASCII-code order (smaller one appears first).
17-
If less than 3 hot sentences exist, then just return as many as you can.
18-
When the input is a special character, it means the sentence ends, and in this case, you need to return an empty list.
19-
Your job is to implement the following functions:
20-
21-
The constructor function:
22-
23-
AutocompleteSystem(String[] sentences, int[] times): This is the constructor. The input is historical data. Sentences is a string array consists of previously typed sentences. Times is the corresponding times a sentence has been typed. Your system should record these historical data.
24-
25-
Now, the user wants to input a new sentence. The following function will provide the next character the user types:
26-
27-
List<String> input(char c): The input c is the next character typed by the user. The character will only be lower-case letters ('a' to 'z'), blank space (' ') or a special character ('#'). Also, the previously typed sentence should be recorded in your system. The output will be the top 3 historical hot sentences that have prefix the same as the part of sentence already typed.
28-
29-
30-
Example:
31-
Operation: AutocompleteSystem(["i love you", "island","ironman", "i love leetcode"], [5,3,2,2])
32-
The system have already tracked down the following sentences and their corresponding times:
33-
"i love you" : 5 times
34-
"island" : 3 times
35-
"ironman" : 2 times
36-
"i love leetcode" : 2 times
37-
Now, the user begins another search:
38-
39-
Operation: input('i')
40-
Output: ["i love you", "island","i love leetcode"]
41-
Explanation:
42-
There are four sentences that have prefix "i". Among them, "ironman" and "i love leetcode" have same hot degree. Since ' ' has ASCII code 32 and 'r' has ASCII code 114, "i love leetcode" should be in front of "ironman". Also we only need to output top 3 hot sentences, so "ironman" will be ignored.
43-
44-
Operation: input(' ')
45-
Output: ["i love you","i love leetcode"]
46-
Explanation:
47-
There are only two sentences that have prefix "i ".
48-
49-
Operation: input('a')
50-
Output: []
51-
Explanation:
52-
There are no sentences that have prefix "i a".
53-
54-
Operation: input('#')
55-
Output: []
56-
Explanation:
57-
The user finished the input, the sentence "i a" should be saved as a historical sentence in system. And the following input will be counted as a new search.
58-
59-
Note:
60-
The input sentence will always start with a letter and end with '#', and only one blank space will exist between two words.
61-
The number of complete sentences that to be searched won't exceed 100. The length of each sentence including those in the historical data won't exceed 100.
62-
Please use double-quote instead of single-quote when you write test cases even for a character input.
63-
Please remember to RESET your class variables declared in class AutocompleteSystem, as static/class variables are persisted across multiple test cases. Please see here for more details.
64-
*/
6510
public class _642 {
6611
public static class Solution1 {
6712

0 commit comments

Comments
 (0)