LeetCode.720 Longest Word in Dictionary
来源:互联网 发布:编写sql语句的工具 编辑:程序博客网 时间:2024/06/07 21:21
题目:
Given a list of strings words
representing an English Dictionary, find the longest word in words
that can be built one character at a time by other words in words
. If there is more than one possible answer, return the longest word with the smallest lexicographical order.
Example 1:
Input: words = ["w","wo","wor","worl", "world"]Output: "world"Explanation: The word "world" can be built one character at a time by "w", "wo", "wor", and "worl".
Example 2:
Input: words = ["a", "banana", "app", "appl", "ap", "apply", "apple"]Output: "apple"Explanation: Both "apply" and "apple" can be built from other words in the dictionary. However, "apple" is lexicographically smaller than "apply".
Note:
words
will be in the range [1, 1000]
.words[i]
will be in the range [1, 30]
.分析1(推荐):class Solution { public String longestWord(String[] words) { //给定字符串数组,找出包含最长的字符串(包含其他单词的字母),如果存在相同长度,取字母排序小的 //思路:对数组排序,再利用Set对字母存储,小的单词一定包含在后面大的单词里面。后面只需要取前缀相同的 Set<String> set=new HashSet<String>(); for(int i=0;i<words.length;i++){ set.add(words[i]); } int length=0; String word=""; for(int i=0;i<words.length;i++){ if(words[i].length()>length||(words[i].length()==length&&words[i].compareTo(word)<0)){ //如果存在相同长度的字符串,取字母排序较小的 int len=words[i].length(); while(len>0&&set.contains(words[i].substring(0,len))){ //求相同的部分 len--; } if(len==0){ //说明该单词的所有字符串均为公共字母,将其标记为匹配串 length=words[i].length(); word=words[i]; } } } return word; }}
分析2:
class Solution { public String longestWord(String[] words) { //给定字符串数组,找出包含最长的字符串(包含其他单词的字母),如果存在相同长度,取字母排序小的 //思路:对数组排序,再利用Set对字母存储,小的单词一定包含在后面大的单词里面。后面只需要取前缀相同的 //对字母排序后,第一个单词一定是共有的,后面只需在此基础上添加 Arrays.sort(words); HashSet<String> set=new HashSet<String>(); String res=""; for(String s:words){ //如果单词只有一个字母,那一定是共有的 if(s.length()==1||set.contains(s.substring(0,s.length()-1))){ res=s.length()>res.length()?s:res; set.add(s); } } return res; }}
阅读全文
0 0
- LeetCode.720 Longest Word in Dictionary
- Leetcode算法学习日志-720 Longest Word in Dictionary
- [LeetCode] Longest Word in Dictionary through Deleting
- LeetCode 720. Longest Word In Dictionary
- leetcode 720. Longest Word in Dictionary
- Leetcode-524. Longest Word in Dictionary through Deleting
- Leetcode 524. Longest Word in Dictionary through Deleting
- LeetCode: 524. Longest Word in Dictionary through Deleting
- LeetCode 524. Longest Word in Dictionary through Deleting
- [LeetCode]524. Longest Word in Dictionary through Deleting
- 【LeetCode】Longest Word in Dictionary through Deleting 解题报告
- LeetCode笔记:524. Longest Word in Dictionary through Deleting
- LeetCode 524. Longest Word in Dictionary through Deleting
- leetcode 524. Longest Word in Dictionary through Deleting
- Leetcode之Longest Word in Dictionary through Deleting 问题
- leetcode 524. Longest Word in Dictionary through Deleting
- [Leetcode] 524. Longest Word in Dictionary through Deleting 解题报告
- 720. Longest Word in Dictionary
- 最小生成树之安慰奶牛
- 带你彻底搞定希尔排序是个什么情况
- 声明和定义的区别
- 分治法计算乘幂
- 习题6.2(2)计算1*2*3+3*4*5+...+99*100*101的值
- LeetCode.720 Longest Word in Dictionary
- 讲一下Markdown
- A Survey on Techniques in NLP--阅读笔记
- softmax_cross_entropy softmax交叉熵 tensorflow numpy
- babyos2(10)——进程,调度,fork,exec,用户空间
- Spark MLlib StreamingKmeans算法源码的详细分析
- Sping boot配置完,启动报tomcat错误
- QT 入门学习博客
- Eclipse创建Maven项目