某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。

给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。

示例 1:

输入:words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"
输出:true
解释:在该语言的字母表中,'h' 位于 'l' 之前,所以单词序列是按字典序排列的。
示例 2:

输入:words = ["word","world","row"], order = "worldabcefghijkmnpqstuvxyz"
输出:false
解释:在该语言的字母表中,'d' 位于 'l' 之后,那么 words[0] > words[1],因此单词序列不是按字典序排列的。
示例 3:

输入:words = ["apple","app"], order = "abcdefghijklmnopqrstuvwxyz"
输出:false
解释:当前三个字符 "app" 匹配时,第二个字符串相对短一些,然后根据词典编纂规则 "apple" > "app",因为 'l' > '∅',其中 '∅' 是空白字符,定义为比任何其他字符都小(更多信息)。

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

思路:直接遍历

要验证字符数组是否按照给定的字母表进行排序,只需要依次比较字符数组中前一个字符串和下一个字符串是否按照给定的字母表排序。

代码:

public static boolean isAlienSorted(String[] words, String order) {int[] index=new int[26];for(int i=0;i<order.length();i++) {//获得字符i在字符表order中的索引index[order.charAt(i)-'a']=i;}for(int i=1;i<words.length;i++) {boolean result=false;//依次比较第i个字符串和第i—1个字符串的字典序大小for(int j=0;j<words[i-1].length()&&j<words[i].length();j++) {int prev = index[words[i - 1].charAt(j) - 'a'];int curr = index[words[i].charAt(j) - 'a'];if(prev<curr) {//当每个前一个字典序小于后一个,给result赋值为trueresult=true;break;}else if(prev>curr) {//当前一个的字典序大于后一个,直接返回falsereturn false;}}if(!result) {//如果前一个的字符长度大于后一个字符长度,返回falseif(words[i-1].length()>words[i].length()) {return false;}}}return true;}

编程练习【验证外星语词典】相关推荐

  1. 有效的括号长按键入验证外星语词典字符的最短距离用栈实现队列

    有效的括号 来源:杭哥 20. 有效的括号 - 力扣(LeetCode) bool isValid(char * s) {int sz=strlen(s);char stack[sz];int k=0 ...

  2. 953. 验证外星语词典( 简单模拟 + 自定义定制排序 )

    文章目录 Question Ideas 1.Answer( Java ) - 自定义定制排序 Code 2.Answer( Java ) - 简单模拟 Code Question 953. 验证外星语 ...

  3. 题目:953.验证外星语词典

    ​ ​题目来源: leetcode题目,网址:953. 验证外星语词典 - 力扣(LeetCode) 解题思路: 遍历字符串,以连续两个为一组判断其是否符合外星语词典的字典序. 可以使用 int 数组 ...

  4. 哈希表题目:验证外星语词典

    文章目录 题目 标题和出处 难度 题目描述 要求 示例 数据范围 解法 思路和算法 代码 复杂度分析 题目 标题和出处 标题:验证外星语词典 出处:953. 验证外星语词典 难度 3 级 题目描述 要 ...

  5. LeetCode 812. 最大三角形面积(再次用到凸包的Andrew算法) / 面试题 04.06. 后继者 / 953. 验证外星语词典

    812. 最大三角形面积 2022.5.15 每日一题 题目描述 给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积. 示例: 输入: points = [[0,0],[0, ...

  6. 953. 验证外星语词典

    力扣打卡:953. 验证外星语词典 解题思路 思路 使用HashMap统计字典的顺序 从头开始,每次只比较两个字符串 循环比较,最后得到结果 解释 每次比较两个字符串,只有两种情况 从头开始比较字符 ...

  7. LeetCode 953. 验证外星语词典

    验证外星语词典 某种外星语也使用英文小写字母,但可能顺序 order (order.length==26)(order.length == 26)(order.length==26)不同.字母表的顺序 ...

  8. 力扣953. 验证外星语词典

    力扣953. 验证外星语词典 某种外星语也使用英文小写字母,但可能顺序 order 不同.字母表的顺序(order)是一些小写字母的排列. 给定一组用外星语书写的单词 words,以及其字母表的顺序 ...

  9. 验证外星语词典(2022-5-17)每日一练

    953. 验证外星语词典 (2022-5-17) 某种外星语也使用英文小写字母,但可能顺序 order 不同.字母表的顺序(order)是一些小写字母的排列. 给定一组用外星语书写的单词 words, ...

最新文章

  1. 机器学习(15)精确率召回率F1-score(查看癌症预测结果的精确率、召回率)
  2. Luck Club-SDT 去中心化的游戏
  3. mysql分析表命令_MySql分析整理命令
  4. 上市近一年,良品铺子的“高端化”之路走通了吗?
  5. pycharm连接远程mysql_CentOS7安装mysql以及使用pycharm远程连接mysql时遇到的问题
  6. 飞利浦弃意已决 冠捷顺势接手
  7. caffe源码阅读(1)_整体框架和简介(摘录)
  8. Node.js 下载安装教程
  9. element UI日历组件自定义操作设置农历、阳历、节日展示、单日操作
  10. 启动马达接线实物图_常见电机控制实物接线图,简单原理分析,学习入门,值得收藏...
  11. 联想微型计算机7360,我的电脑是联想启天M7360台式品牌机,想升级CPU,请问可以换什么CPU?...
  12. Redis的基本操作
  13. 一种简单的电荷泵驱动NMOS管电路
  14. CSDN中用Markdown如何给文本加下划线(可延长下划线)
  15. 腾讯云服务器无限更换ip,腾讯云服务器免费更换IP额度不足利用弹性IP地址更换...
  16. 复活唐音,是一味怎样的菜?
  17. preempt_disable内核禁用抢占
  18. (七)设定目标:原理与方法
  19. 搭建Cobbler无人值守安装服务器
  20. 智能硬件开发如何选择低功耗MCU?

热门文章

  1. TOSHIBA,TC358775XBG,MIPI DSI转LVDS,视频解码器,RK3399点LVDS屏必备
  2. 7-4 鸿鸿哥分钱(C++)
  3. Microsoft 登陆微软账号一直加载不进去 解决方案整理
  4. 日期 日历 时区 地区【API】
  5. 【JAVA程序设计】(C00063)基于Springboot+Thymeleaf学校自动排课管理系统
  6. ES6之Array.from()
  7. H5游戏引擎为什么选择egret和怎么学习egret
  8. 【算法】实现打印汉字拼音首字母
  9. Ps4手柄隐藏无法识别,PS4手柄没反应
  10. 协程大批量爬取是要被封IP的,最优秀的方法就是在被封IP时候立马切换IP