public class Solution
{
public string LongestWord(string[] words)
{
var maxlist = new List<string>(); var dic = new Dictionary<string, string>();
Queue<string> Q = new Queue<string>();
var maxstr = ""; foreach (var word in words)
{
var temp = word;
if (!dic.ContainsKey(temp))
{
dic.Add(temp, temp.Substring(, temp.Length - ));
}
}
var list = dic.OrderByDescending(x => x.Key.Length).ToList(); foreach (var l in list)
{
var cur = l.Key;
if (cur.Length < maxstr.Length)
{
continue;
} Q.Enqueue(cur);
var len = cur.Length;
while (Q.Any())
{
len--;
var temp = Q.Dequeue();
var subtemp = temp.Substring(, temp.Length - );
if (dic.ContainsKey(subtemp))
{
Q.Enqueue(subtemp);
}
} if (len == )
{
maxlist.Add(cur);
maxstr = cur;
}
} var result = maxlist.OrderBy(x => x).ToList().FirstOrDefault();
return result;
}
}

leetcode720的更多相关文章

  1. [Swift]LeetCode720. 词典中最长的单词 | Longest Word in Dictionary

    Given a list of strings words representing an English Dictionary, find the longest word in words tha ...

  2. Leetcode720.Longest Word in Dictionary词典中最长的单词

    给出一个字符串数组words组成的一本英语词典.从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成.若其中有多个可行的答案,则返回答案中字典序最小的单词. 若无答案,则返回 ...

随机推荐

  1. vue-router(一)

    vue路由再vue开发的项目中可以说是一个必用的组件,而这个部分的水却依旧很深,今天我们深入分析其内部的东西,先看这样一个效果: 大家 可以看到上图中,我们通过两种方式实现了一个vue路由跳转的过度动 ...

  2. mysql安装优化

    安装centos7 安装mysql解决方案1 安装mariadb解决方案2 官网下载安装mysql-server时区批量配置编码远程连接my.cnf简版的参数说明核心配置参数升级版mysql存储引擎M ...

  3. Redis中关于Hash键的一些问题

    Hash键存在的意义: 1.Hash键可以将信息凝聚在一起,而不是直接分散的存储在整个Redis中,这不仅方便了数据管理,还可以尽量避免一定的误操作: 2.避免键名冲突: 3.减少内存占用.(最重要的 ...

  4. java获取服务器的ip和地址

    HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = "http://" ...

  5. 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)

    通过 mklink 命令可以创建文件或文件夹的链接,而这种链接跟快捷方式是不一样的.然而我们还可能会遇到其使用过程中的一些坑,本文将整理这些坑并提供解决方法.   0x00 背景介绍:mklink m ...

  6. PHP获取客户端的IP、地理信息、浏览器、本地真实IP

    <?php header("Content-type:text/html;charset=utf-8"); // 作用获取客户端的ip.地理信息.浏览器.本地真实IP cla ...

  7. normalizr api 转换类库使用

    1. 项目初始化 yarn init yarn add normalizr 项目结构 app.js package.json user.json 2. 使用 a. app.js const userj ...

  8. hibernate 多对多一个对象出现多条记录问题

    hibernate 多对多时,当须要依据它关联的对象查找的时候,会出现一个对象有多条记录的问题 用 left join fetch 抓取查询的时候还是会出现这问题,是由于主表在关联表中有多条记录 用 ...

  9. [LeetCode系列]有序链表转换为平衡BST的递归解法

    给定有序链表(元素由小到大), 试问如何将其转换为一个平衡BST? 平衡BST: 任意节点的左右子树的深度差值不大于1. 主要思想是用递归. Trick是使用快慢指针来获取中间节点. 获得中间节点后, ...

  10. list.ForEach的用法

    Templist.ForEach(o => { var isSel = ReviewerFileRelationService.Where(s => s.PackageFileId == ...