面试场景题
如果有一个大文件,里面全是ip字符串,现在需要统计每个ip出现的次数,并且ip长度都挺长的,怎么在不使用map的情况下怎么统计,或者怎么优化
hashmap
要统计单词的次数,可以直接上map,但是可能字符会占挺多内存,这时候可以考虑字符转化为int之后再进行map,如果是ip字符串可以参考
字典树
力扣面试题 16.02. 单词频率
代码语言:javascript复制struct Trie{
Trie* son[26];
int cnt=0;
Trie(){
for(int i=0;i<26;i ){
son[i]=nullptr;
}
}
};
class WordsFrequency {
private:
Trie *root;
public:
WordsFrequency(vector<string>& book) {
root=new Trie();
Trie* temp;
for(auto item:book){
temp = root;
for(auto ch:item){
int index=ch-'a';
if(!temp->son[index]) temp->son[index]=new Trie();
temp=temp->son[index];
}
temp->cnt;
}
}
int get(string word) {
Trie* temp=root;
for(auto ch:word){
int index=ch-'a';
if(temp->son[index]) temp=temp->son[index];
else return 0;
}
return temp->cnt;
}
};