Leetcode720.Longest Word in Dictionary词典中最长的单词
给出一个字符串数组words组成的一本英语词典。从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。
若无答案,则返回空字符串。
示例 1:
输入: words = ["w","wo","wor","worl", "world"] 输出: "world" 解释: 单词"world"可由"w", "wo", "wor", 和 "worl"添加一个字母组成。
示例 2:
输入: words = ["a", "banana", "app", "appl", "ap", "apply", "apple"] 输出: "apple" 解释: "apply"和"apple"都能由词典中的单词组成。但是"apple"得字典序小于"apply"。
注意:
- 所有输入的字符串都只包含小写字母。
- words数组长度范围为[1,1000]。
- words[i]的长度范围为[1,30]。
bool cmp1(string a, string b)
{
    return a.size() > b.size();
}
bool cmp2(string a, string b)
{
    return a < b;
}
class Solution {
public:
    string longestWord(vector<string>& words) {
        int len = words.size();
        if(len <= 1)
            return len == 0? "":words[0];
        vector<string> res;
        map<string, int> check;
        for(int i = 0; i < len; i++)
        {
            check[words[i]] = 1;
        }
        sort(words.begin(), words.end(), cmp1);
        int MAXsize = 0;
        for(int i = 0; i < len; i++)
        {
            int size = words[i].size();
            bool flag = true;
            if(MAXsize != 0 && MAXsize > size)
                continue;
            for(int j = 0; j < size - 1; j++)
            {
                string temp = "";
                for(int k = 0; k <= j; k++)
                {
                    temp += words[i][k];
                }
                if(check[temp] != 1)
                {
                    flag = false;
                    break;
                }
            }
            if(flag == true)
            {
                MAXsize = max(MAXsize, size);
                res.push_back(words[i]);
            }
        }
        if(res.size() == 0)
            return "";
        sort(res.begin(), res.end(), cmp2);
        return res[0];
    }
};Leetcode720.Longest Word in Dictionary词典中最长的单词的更多相关文章
- [leetcode]720. Longest Word in Dictionary字典中最长的单词
		b.compareTo(a) 这个函数是比较两个值得大小,如果b比a大,那么返回1 如果小,那么返回-1,相等返回0 如果比较的是字符串,那么比较字典编纂顺序,b靠前返回-1,靠后返回1 这个题的核心 ... 
- Java实现 LeetCode 720 词典中最长的单词(字典树)
		720. 词典中最长的单词 给出一个字符串数组words组成的一本英语词典.从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成.若其中有多个可行的答案,则返回答案中字典序最 ... 
- [LeetCode] Longest Word in Dictionary 字典中的最长单词
		Given a list of strings words representing an English Dictionary, find the longest word in words tha ... 
- [Swift]LeetCode720. 词典中最长的单词 | Longest Word in Dictionary
		Given a list of strings words representing an English Dictionary, find the longest word in words tha ... 
- leetcode 720. 词典中最长的单词
		/* 1.hashtable 把每个字符串都放到hashtable中 a.排序 长度不同,长的放在前面,长度相同,字典序小的放在前面 b.不排序 遍历数组,对于每个字符串判断它的所有前缀是否都在has ... 
- Leetcode字典树-720:词典中最长的单词
		第一次做leetcode的题目,虽然做的是水题,但是菜鸟太菜,刚刚入门,这里记录一些基本的知识点.大佬看见请直接路过. https://leetcode-cn.com/problems/longest ... 
- Longest Word in Dictionary through Deleting - LeetCode
		目录 题目链接 注意点 解法 小结 题目链接 Longest Word in Dictionary through Deleting - LeetCode 注意点 长度一样的字符串要按字典序返回较小的 ... 
- 【LeetCode】Longest Word in Dictionary through Deleting 解题报告
		[LeetCode]Longest Word in Dictionary through Deleting 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode. ... 
- 【Leetcode_easy】720. Longest Word in Dictionary
		problem 720. Longest Word in Dictionary 题意: solution1: BFS; class Solution { public: string longestW ... 
随机推荐
- mysql-connector-java-8.0.12使用时报错
			配置url加 &useSSL=false&serverTimezone=UTC 就可以了 
- sql 2000 or sql2005 数据库日志删除
			数据库日志清理(sql 2000 or sql2005)DUMP TRANSACTION crm WITH NO_LOGBACKUP LOG crm WITH NO_LOGDBCC SHRINKDAT ... 
- Server 主机屋云服务器 宝塔面板 部署nginx反向代理的vue项目
			图文记录云服务器上部署需要nginx反向代理的vue项目: 一.先登录并购买云服务器,根据自己需求购买,此处不详细介绍: 二.登录后如下图,点击进入云服务器界面: 三.在云服务器界面点击管理,进入管理 ... 
- webpack4.0打包的时候一些技巧
			4.0的webpack要比之前的版本强大的不是一点点 打包的时候也做了很多优化 然后说一些这段时间发现的有趣的技巧 1. 打包出来的文件很大,不知道是什么原因可以用 webpack-bundle-an ... 
- spring中关于<context:component-scan>的使用说明
			通常情况下我们在创建spring项目的时候在xml配置文件中都会配置这个标签,配置完这个标签后,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描 ... 
- Java问题解读系列之String相关---String类的常用方法?
			今天的题目是:String类的常用方法? 首先,我们在eclipse中定义一个字符串,然后使用alt+/就会出现String类的所有方法,如下图所示: 下面我就挑选一些常用的方法进行介绍: 首先定义两 ... 
- springmvc java程序文件保存地址的路径问题
			会保存为这种斜杠 不论之前填写的是什么样 
- JAVA读取文件操作时路径的斜杠问题
			java中的路径一般用"/"windows中的路径用"\"linux,unix中的路径一般用"/"其中java中"/"等 ... 
- 下载android4.4.2源代码全过程(附已下载的源代码)
			版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/maosidiaoxian/article/details/36625727 今天在下载andriod ... 
- 提升mysql服务器性能(复制原理与拓扑优化)
			原文:提升mysql服务器性能(复制原理与拓扑优化) 版权声明:皆为本人原创,复制必究 https://blog.csdn.net/m493096871/article/details/9008171 ... 
