楼主: sunyanzi
跳转到指定楼层
上一主题 下一主题
收起左侧

pinterest 电面跪经

🔗
feifeiguoguo 2017-10-31 01:14:10 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
perry1990 2017-10-31 01:14:41 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
wobujupa 2017-10-31 01:23:17 | 只看该作者
全局:
feifeiguoguo 发表于 2017-10-31 01:14
这个只要字典里有world就会输出world了。输出的是字典里长度最长的单词。不知道是不是建好之后需要DFS, ...

哦哦哦,我考虑的太简单了,上来我觉得应该按照一个规则进行排序才对
回复

使用道具 举报

🔗
wobujupa 2017-10-31 01:24:04 | 只看该作者
全局:
perry1990 发表于 2017-10-31 01:14
这个是这道题基本功能的实现。
我比较好奇的是,这道题怎么保证 'w', 'wo', 出现在world之前呢。按道理 ...

嗯嗯,是的,考虑太简单了,如果这样的话加上一个排序应该可以控制w wo wor的先后顺序
回复

使用道具 举报

🔗
wobujupa 2017-10-31 01:25:26 | 只看该作者
全局:
perry1990 发表于 2017-10-31 01:14
这个是这道题基本功能的实现。
我比较好奇的是,这道题怎么保证 'w', 'wo', 出现在world之前呢。按道理 ...

如果存在w wo wor world这种情况的话,代码就得更多了
回复

使用道具 举报

🔗
wobujupa 2017-10-31 01:38:28 | 只看该作者
全局:
  1. public class BuildDict {

  2.     public static TrieNode root;

  3.     public static void main(String[]args){
  4.         String[] dict = {"world", "wo", "wt", "wor", "w", "worl", "wto"};
  5.         System.out.println(maxWord(dict));
  6.     }


  7.     public static String maxWord(String[] dict){
  8.         if(dict == null || dict.length == 0) return "";
  9.         Map<String, Integer> map = new HashMap<>();
  10.         Queue<String> queue = new LinkedList<>();
  11.         for(String word : dict){
  12.             if(word.length() == 1) {
  13.                 queue.add(word);
  14.             }
  15.             map.put(word, 0);
  16.         }
  17.         String res = "";
  18.         while(!queue.isEmpty()){
  19.             int size = queue.size();
  20.             for(int i = 0; i < size; i++){
  21.                 String word = queue.poll();
  22.                 for(char c = 'a'; c <= 'z'; c++){
  23.                     String tmpWord = word + c;
  24.                     if(map.containsKey(tmpWord)){
  25.                         queue.add(tmpWord);
  26.                         res = tmpWord;
  27.                     }
  28.                 }
  29.             }
  30.         }
  31.         return res;
  32.     }
  33. }
复制代码


重新写了一版,感觉不用trie也好,用bfs,从1个字符的word开始,有点点像word ladder,楼主提到如果有多个同样长度的话,返回随便一个就好的话,不断更新的话,最后queue空的时候,最后更新的值就是最大长度的word了。还请各位大神指教
回复

使用道具 举报

🔗
 楼主| sunyanzi 2017-11-1 11:17:27 | 只看该作者
全局:
feifeiguoguo 发表于 2017-10-31 01:14
这个只要字典里有world就会输出world了。输出的是字典里长度最长的单词。不知道是不是建好之后需要DFS, ...

我就是这么做的,建立一个trie,然后dfs
回复

使用道具 举报

🔗
LeeYYY 2017-11-15 15:37:59 | 只看该作者
全局:
这题就是 LC原题:

https://leetcode.com/problems/longest-word-in-dictionary/description/

补充内容 (2017-11-15 15:51):
好吧,严格地说,很有可能楼主面试是在leetcode加了这题之前。所以Pinterests的面试题确实有点小难。。
回复

使用道具 举报

🔗
 楼主| sunyanzi 2017-11-17 06:26:18 | 只看该作者
全局:
LeeYYY 发表于 2017-11-15 15:37
这题就是 LC原题:

https://leetcode.com/problems/longest-word-in-dictionary/description/

感觉就是从我这个帖子过去的。。。
回复

使用道具 举报

🔗
LeeYYY 2017-11-17 12:46:33 | 只看该作者
全局:
sunyanzi 发表于 2017-11-17 06:26
感觉就是从我这个帖子过去的。。。

神了!楼主威武啊
回复

使用道具 举报

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

本版积分规则

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