一、题目


某种外星语也使用英文小写字母,但可能顺序 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' > '∅',其中 '∅' 是空白字符,定义为比任何其他字符都小(更多信息)。

提示:

  1. 1 <= words.length <= 100
  2. 1 <= words[i].length <= 20
  3. order.length == 26
  4. 在 words[i] 和 order 中的所有字符都是英文小写字母。

二、题解思路


  • 题解思路:针对words数组,两两单词比较,如果单词一样,则sum++(sum两两相邻单词符合要求的次数,看最后是否等于words数组长度减一)如果单词不一样,进入循环,则进行进行以下三种情况判断:1、相邻两个单词相同位置上字母,前者比后者在order上排列靠前,则sum++,跳出循环;2、两个单词相同位置上字母相同,则位置索引++,进入下一个位置判断;3、否则,返回false(前者字母比后者字母在order上靠后)。

三、代码实现


  • C++代码实现
class Solution {
public:bool isAlienSorted(vector<string>& words, string order) {int size_1 = words.size();   //words的单词个数int sum = 0;for(int i = 0;i<size_1-1;i++){if(words[i]==words[i+1]){sum++;}else{int counts = 0;int size_2 = min(words[i].size(),words[i+1].size());int j = 0;while(j<size_2){if(order.find(words[i][j])<order.find(words[i+1][j])){sum++;goto a;}else if(order.find(words[i][j])==order.find(words[i+1][j])){j++;counts++;}elsereturn false;      }a:if(words[i+1].size()<words[i].size() && counts==words[i+1].size())return false;}}if(sum==size_1-1)return true;elsereturn false;}
};

Leetcode——953.验证外星语词典——题解+代码实现相关推荐

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

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

  2. leetcode 953. 验证外星语词典 做题笔记

    题目: 某种外星语也使用英文小写字母,但可能顺序 order 不同.字母表的顺序(order)是一些小写字母的排列. 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定 ...

  3. leetcode 953.验证外星语词典(js)

    题目 某种外星语也使用英文小写字母,但可能顺序 order 不同.字母表的顺序(order)是一些小写字母的排列. 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的 ...

  4. LeetCode: 953. 验证外星语词典

    题目 某种外星语也使用英文小写字母,但可能顺序 order 不同.字母表的顺序(order)是一些小写字母的排列. 给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的 ...

  5. leetcode -- 953验证外星语词典

    这个题目很有趣.一开始读题目感觉跟读外国语一样,等到后来,突然想明白,这跟小学的时候学习使用字典是一样的过程,就忽然明白了,同时获得了和小时候忽然明白查字典一样的快乐了 public boolean ...

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

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

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

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

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

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

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

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

最新文章

  1. 百度语音合成 js html,Node.js结合百度TTS接口实现文字转语音功能
  2. K - Candies POJ - 3159(利用了自定义比较操作符)
  3. 将excel中的数据写入xml
  4. Jenkins 部署
  5. Jobs(三) HTML的form表单提交中文后,后台取出乱码的问题
  6. 如何真正理解用户标签体系?
  7. IoT 云服务加速产业创新,推进规模商用
  8. 演练:创建和使用静态库 (C++)
  9. makefile / CMake
  10. flow使用_使用Microsoft Flow进行文本分析
  11. 【体系结构】shared pool的个人理解
  12. mysql服务器io等待高定位与分析
  13. ARCH与GARCH模型
  14. [汇编] 十进制与十六进制互转
  15. 安卓获取签名证书SHA1值
  16. stata 空间杜宾模型_利用STATA创建空间权重矩阵及空间杜宾模型计算----命令
  17. 怎么更改AD域用户账号和密码_AD域管理中那些实用的软件
  18. pytorchOCR之CRNN
  19. 红旗 Linux 5.0 正式版下载地址
  20. 使用hexo+icarus快速搭建属于自己的博客网站

热门文章

  1. eclipse设置背景色为绿色
  2. Windows环境下的易失性数据取证
  3. yolov5识别工地安全帽
  4. 计算机组系统原理—模型机
  5. [Minecraft教程]我的世界插件制作-计分板[Bukkit][Scoreboard]
  6. 空压机废油水如何处理(储气罐废油水环保处理)
  7. Revit二次开发 体量里的放样
  8. Linux的浏览器怎么打拳皇,Fedora 9也用xmame下玩拳皇[多图]
  9. 会声会影x8序列号无法运行安装解决方法教程
  10. U-Boot -第二阶段代码分析