目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣

描述:

现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同。

给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按这门新语言的字母顺序进行了排序 。

请你根据该词典还原出此语言中已知的字母顺序,并 按字母递增顺序 排列。若不存在合法字母顺序,返回 "" 。若存在多种可能的合法字母顺序,返回其中 任意一种 顺序即可。

字符串 s 字典顺序小于 字符串 t 有两种情况:

在第一个不同字母处,如果 s 中的字母在这门外星语言的字母顺序中位于 t 中字母之前,那么 s 的字典顺序小于 t 。
如果前面 min(s.length, t.length) 字母都相同,那么 s.length < t.length 时,s 的字典顺序也小于 t 。

示例 1:

输入:words = ["wrt","wrf","er","ett","rftt"]
输出:"wertf"
示例 2:

输入:words = ["z","x"]
输出:"zx"
示例 3:

输入:words = ["z","x","z"]
输出:""
解释:不存在合法字母顺序,因此返回 "" 。

提示:

1 <= words.length <= 100
1 <= words[i].length <= 100
words[i] 仅由小写英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/Jf1JuT
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

* 解题思路:
* 这题困难题,时间问题没有完成,只是想了个大体思路写了一下。
* 先通过递归的方式,找出其所有的依赖关系。比如a在b前面,则a的HashSet中添加b。
* 这样最终得出的所有的依赖。
* 然后通过拓扑排序 + 深度优先搜索进行搜索,从而推导出正确的字符串。

代码:

public class Solution114 {//未完成的public String alienOrder(String[] words) {HashSet<Character>[] sets = new HashSet[26];for (int i = 0; i < 26; i++) {sets[i] = new HashSet<>();}searchRely(0, Arrays.asList(words), sets);return "";}private void searchRely(int index, List<String> words, HashSet<Character>[] sets) {if (words.size() == 0) {return;}char lastChar = 0;ArrayList<String> newList = new ArrayList<>();for (int i = 0; i <= words.size(); i++) {if (i == words.size()) {searchRely(index + 1, newList, sets);break;}String str = words.get(i);char c = str.charAt(index);if (lastChar == 0) {lastChar = c;newList.add(str);continue;}if (c != lastChar) {sets[c - 'a'].add(lastChar);lastChar = c;searchRely(index + 1, newList, sets);newList.clear();} else {newList.add(str);}}}
}

​力扣解法汇总-剑指 Offer II 114. 外星文字典相关推荐

  1. 剑指 Offer II 114. 外星文字典(困难 图 bfs 哈希表 拓扑排序 字符串 数组)

    剑指 Offer II 114. 外星文字典 现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同. 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按 ...

  2. LeetCode每日一题(2022/5/31)剑指 Offer II 114. 外星文字典(困难)

    现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同. 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按这门新语言的字母顺序进行了排序 . 请你根据该 ...

  3. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

  4. 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java

    <LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...

  5. 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java

    <LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...

  6. 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java

    <LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...

  7. 《LeetCode力扣练习》剑指 Offer 25. 合并两个排序的链表 Java

    <LeetCode力扣练习>剑指 Offer 25. 合并两个排序的链表 Java 一.资源 题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: ...

  8. 《LeetCode力扣练习》剑指 Offer 24. 反转链表 Java

    <LeetCode力扣练习>剑指 Offer 24. 反转链表 Java 一.资源 题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例: 输入: 1-& ...

  9. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

最新文章

  1. pat 团体赛练习题集 L2-008. 最长对称子串
  2. POJ1088 滑雪题解+HDU 1078(记忆化搜索DP)
  3. Sharepoint学习笔记 –架构系列—10 Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构
  4. java连接ftp一直阻塞
  5. idea2020代码el组件红色波浪线_Android实现炫酷的ViewPager3D组件
  6. cut out数据增强_ChIP-Seq数据分析(PE型)
  7. ucenter词语过滤原理
  8. APUE学习笔记-守护进程的创建
  9. latex 调整表格的行高_latex 表格如何控制行高,行距,行与行之间的距离
  10. linux虚拟机安装samba服务,在虚拟机Redhat Linux下安装Samba服务器分享
  11. ClickHouse常用sql语句
  12. 程序员一般可以从什么平台接私活?
  13. RRD原理(转载的)
  14. Excel学习日记:L18-CountifsSumifs函数
  15. python fields函数_Python函数详解
  16. Unity3D 鼠标选择物体高光显示信息
  17. linux按目录名查找目录_如何在Linux中查找目录?
  18. 发布订阅模式,在工作中它的能量超乎你的想象
  19. LoadRunner之并发用户数与迭代关系---并发数与迭代的区别
  20. 招商银行 支付 ECSHOP php shopex

热门文章

  1. MATLAB算法实战应用案例精讲-【图像处理】数字图像海报化(附Java、python、matlab和R语言代码实现)
  2. c语言cls为什么没起作用,c语言的“clsquot;是什么意思
  3. 分析NFS的16个组成员身份的限制的过程
  4. WebService客户端设计期TClientDataSet.ProviderName无值解决
  5. TIKTOK跨境:中国式养生风靡TikTok
  6. Domino系统组织名称、域名迁移
  7. 2021年起重机司机(限桥式起重机)最新解析及起重机司机(限桥式起重机)模拟考试
  8. 盘点2015全球物联网年度重大事件
  9. 重磅 | 美格智能发布新一代5G CPE解决方案,构建大带宽5G FWA连接
  10. HTML+CSS 实现商品图片列表放大视觉效果 复制完整代码即可马上调用