栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[前缀树]leetcode745:前缀和后缀搜索(hard)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[前缀树]leetcode745:前缀和后缀搜索(hard)

题目:


题解:

思路1:统计每个单词的所有前缀与后缀组合起来的单词,然后存在 hashmap 中,进行暴力匹配就行。


思路2:前缀树

  • 以后再补吧,现在没时间。。。

题解:

class WordFilter {
public:
    unordered_map dict;
    // 将每个单词所有前缀与后缀的组合进行枚举,用特殊符号#来连接前缀与后缀。对于相同的前缀与后缀只有保留最大的下标即可
    WordFilter(vector& words) {
        for(int i=0,n=words.size();i
            int m=words[i].size();
            // 前缀与后缀的组合
            for(int j=1;j<=m;j++)
                for(int k=1;k<=m;++k){
                    string word=words[i].substr(0,j)+"#"+words[i].substr(m-k);
                    dict[word]=i;
                }
        }
    }
    
    int f(string pref, string suff) {
        string word=pref+"#"+suff;
        return dict.count(word)?dict[word]:-1;
    }
};
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017408.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号