实现字典

发布于 2024-09-29 13:59:38 字数 132 浏览 4 评论 0原文

嗨,

我遇到了一个面试问题,关于实现一个字典,它可以实现自动完成,自动更正,拼写检查等功能...

我实际上想知道哪种数据结构最适合实现字典以及如何实现接近上述所需的功能...

欢迎任何指导我的链接...

Hii ,

I ran across a interview question of implementing a dictionary that can implement the features of auto-completion , auto - correction , spell check etc...

I actually wanted to know which data structure is the best for implementing a dictionary and how one approaches the above required features...

Any links that guide me on this are welcome...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一枫情书 2024-10-06 13:59:38

对于此类问题,有相同的答案:Trie。看看这里..

还有后缀树(或帕特里夏树)可以用于此目的..

There is just the same answer for this kind of problem: a Trie. Take a look here..

Also suffix trees (or Patricia Trees) can be useful for this purposes..

不必了 2024-10-06 13:59:38

Tries 是一种常见的结构。它们是有限状态自动机的特例,也用于 字典构建拼写检查

Tries are a common structure for this. They are a special case of finite-state automata, which have also been used for dictionary construction and spell checking.

九歌凝 2024-10-06 13:59:38

您可以使用任何排序的容器获得自动完成功能,例如一组字符串:

#include <limits>
#include <set>
#include <string>
#include <vector>

int main()
{
    std::set<std::string> words = {"foo", "bar", "barber", "baz", "quux"};

    std::string starting_with = "ba";
    auto lower = words.lower_bound(starting_with);
    auto upper = words.upper_bound(starting_with + std::numeric_limits<char>::max());

    std::vector<std::string> suggested_words(lower, upper);
}

You can get auto-completion with any sorted container, for example a set of strings:

#include <limits>
#include <set>
#include <string>
#include <vector>

int main()
{
    std::set<std::string> words = {"foo", "bar", "barber", "baz", "quux"};

    std::string starting_with = "ba";
    auto lower = words.lower_bound(starting_with);
    auto upper = words.upper_bound(starting_with + std::numeric_limits<char>::max());

    std::vector<std::string> suggested_words(lower, upper);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文