LeetCode 953. Verifying an Alien Dictionary (验证外星语词典)
2024-09-30 23:33:20
题目标签:HashMap
题目给了我们一个 order 和 words array,让我们依照order 来判断 words array 是否排序。
利用hashmap 把order 存入 map, 写一个helper method 来判断每临近的两个 word 是否排序正确。
遍历words array,依次比较临近的两个words。
具体看code。
Java Solution:
Runtime: 5 ms, faster than 64.55%
Memory Usage: 38.2 MB, less than 11.41%
完成日期:03/14/2019
关键点:把order 存入map
class Solution {
public boolean isAlienSorted(String[] words, String order) { if(words.length == 1)
return true; Map<Character, Integer> map = new HashMap<>(); // put order into hashmap: key = char, value = index
for(int i=0; i<order.length(); i++)
{
map.put(order.charAt(i), i);
} // iterate words to compare each two
for(int i=1; i<words.length; i++)
{
if(!isSorted(words[i-1], words[i], map))
return false;
} return true; } private boolean isSorted(String word1, String word2, Map map)
{
int size = Math.max(word1.length(), word2.length()); for(int i=0; i<size; i++)
{
if(i >= word1.length())
return true;
else if(i >= word2.length())
return false; int index1 = (int)map.get(word1.charAt(i));
int index2 = (int)map.get(word2.charAt(i)); if(index2 < index1)
return false;
else if(index1 < index2)
return true;
} return true;
}
}
参考资料:N/A
LeetCode 题目列表 - LeetCode Questions List
题目来源:https://leetcode.com/
最新文章
- Mysql zip包在Windows上安装配置
- 简单Java算法程序实现!斐波那契数列函数~
- 合并分区(merge range)对事务日志的影响
- NSDate NSString相互转化
- 前端排版-使用inline-block且两端对齐
- Chrome Apps將是Google送給微軟的特洛伊木馬?
- jquery源码分析-工具函数
- HTML第一部分
- hadoop2.5.1搭建(一)
- Spring 和 MyBatis 环境整合
- Android实时获取音量(单位:分贝)
- JS 部分基础内容总结
- 树莓派安装FLASK服务;并在端网页读取 GPIO状态和系统时间
- 03.redis与ssm整合(mybatis二级缓存)
- java基础小项目练习之1----3天做出飞机大战
- python正则表达式--编译正则表达式re.compile
- 【hadoop】 hadoop 单机伪分布式安装
- UWP C# 调用 C++/CX
- 【SPOJ】Highways(矩阵树定理)
- 联想E440问题:点击鼠标时,弹出“无法连接synaptics定点装置驱动程序”错误