查看: 1540| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

[找工就业] 这一题这么写对么?

全局:

2020(7-9月)-CS硕士+5-10年 | 猎头|大西雅图地区 码农类General全职@meta

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
面的一家大厂。后来hr说,这一轮coding,就是dictionary,先加一些词。然后,判断,有没有。一个dot表示一个字母,任意的。fo. 和foo是match的。我做的就是用trie写的。改写了search 成strongSearch。请各位看看。
   
. Waral dи,
class Trie {
    public TrieNode root;
    public Trie() {
        root = new TrieNode();
    }
   
    public void insert(String word) {. .и
        TrieNode cur = root;
        for (char c : word.toCharArray()) {
            if (cur.branches[c-'a'] == null) {
                cur.branches[c-'a'] = new TrieNode();
            }.1point3acres
            cur = cur.branches[c-'a'];
        }
        cur.endWord = true;
    }
. check 1point3acres for more.
    public boolean strongSearch(TrieNode node, String word, int p) {
        if (node == null)
            return false;
        char c = word.charAt(p);. Waral dи,
        if (c !='.') {
            if (node.branches[c-'a'] == null)
                return false;. .и
            else {
                if(p == word.length()-1){
                    return node.branches[c-'a'].endWord;
                }
                return smartSearch(node.branches[c-'a'], word, p+1);.google  и
            }
        } else {
            for (int i = 0; i < 26; i++) {
                if(node.branches[i] != null) {
                    if(p == word.length()-1). 1point3acres.com
                        return node.branches[i].endWord;
                    if (smartSearch(node.branches[i], word, p+1))
                        return true;
                }.google  и
            }
        }
        return false;
    }
   
    public boolean search(String word) {
        TrieNode cur = root;
        for (char c : word.toCharArray()) {
            if (cur.branches[c-'a'] == null) {.--
                return false;
            }
            cur = cur.branches[c-'a'];
        }
        return cur.endWord;
    }. 1point 3 acres
   
    public boolean startsWith(String prefix) {
        TrieNode cur = root;
        for (char c : prefix.toCharArray()) {. 1point3acres
            if (cur.branches[c-'a'] == null) {
                return false;. From 1point 3acres bbs
            }
            cur = cur.branches[c-'a'];. Waral dи,
        }
        return true;
    }
}
.1point3acres
class TrieNode {
    public boolean endWord;. From 1point 3acres bbs
    public TrieNode[] branches;
    public TrieNode() {
        endWord = false;
        branches = new TrieNode[26];.1point3acres
    }. Waral dи,


. From 1point 3acres bbs


上一篇:IBM OA什么情况
下一篇:疫情导致bg checking未完成,Vermont county closed, criminal record missing
🔗
zzgzzm 2020-8-15 02:19:33 来自APP | 只看该作者
全局:
只是大概看了一下。我觉的对的 ,就是定义trie node, 然后插入是迭代,查找对wild card char进行递归。这是LC上的一个原题。

我感觉你在wild card查找递归时可以先判断index越界(单词结束)的情况,这样你在之后for loop调用时coding会简洁一些。
(其实任何递归函数都先处理边界情况作为关键的stop condition 保障)
回复

使用道具 举报

🔗
 楼主| zlove 2020-8-15 04:55:08 | 只看该作者
全局:
zzgzzm 发表于 2020-8-15 02:19
只是大概看了一下。我觉的对的 ,就是定义trie node, 然后插入是迭代,查找对wild card char进行递归。这是 ...

我也觉得没写错。可是,feedback出来却说有很多bug。

回复

使用道具 举报

🔗
zzgzzm 2020-8-15 05:23:46 来自APP | 只看该作者
全局:
zlove 发表于 2020-08-14 13:55:08. 1point3acres.com
我也觉得没写错。可是,feedback出来却说有很多bug。
那你复制到LC 211测试一下吧。我觉的大体结构没问题,得看细节是否正确。
回复

使用道具 举报

🔗
 楼主| zlove 2020-8-15 13:21:08 | 只看该作者
全局:
zzgzzm 发表于 2020-8-15 05:23. check 1point3acres for more.
那你复制到LC 211测试一下吧。我觉的大体结构没问题,得看细节是否正确。

有个bug。心服口服
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表