953. Verifying an Alien Dictionary

2023-12-21 16:33
文章标签 dictionary verifying alien 953

本文主要是介绍953. Verifying an Alien Dictionary,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

953. 验证外星语词典

某种外星语也使用英文小写字母,但可能顺序 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 中的所有字符都是英文小写字母。

解法一

//时间复杂度O(n), 空间复杂度O(1)
class Solution {
public:bool check(const string& a, const string& b, unordered_map<char, int>& um) {int n = min(a.size(), b.size());for(int i = 0; i < n; i++) {if(um[a[i]] < um[b[i]]) return true;else if(um[a[i]] > um[b[i]]) return false;}return a.size() <= b.size();}bool isAlienSorted(vector<string>& words, string order) {unordered_map<char, int> um;for(int i = 0; i < 26; i++) {um[order[i]] = i;}int m = words.size();for(int i = 1; i < m; i++) {if(!check(words[i - 1], words[i], um)) return false;}return true;}
};

思路:

解法一

建立一个字母表序列的哈希表um,然后使用此序列对words中每相邻两个字符串进行字典序验证,如果都验证通过返回true,否则返回false。

2019/08/18 01:06

这篇关于953. Verifying an Alien Dictionary的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520716

相关文章

[LeetCode] 524. Longest Word in Dictionary through Deleting

题:https://leetcode.com/problems/longest-word-in-dictionary-through-deleting/ 题目大意 对s删除某些元素,使得删除后的s 为 d中的某个元素。 思路 trie 首先将 建立tire,然后是用dfs搜索,遍历s。 boolean dfs(TrieNode node,String s,StringBuilder cu

getLocation:fail, the permission value is offline verifying

getLocation:fail, the permission value is offline verifying 后端会根据appid和secret生成 签名,前端wx配置时一定用appid来验证签名的正确 本次错误为配置初始化失败:前端与后端的appId不一致,我的失误也

Redis(Remote Dictionary Server)

Redis(Remote Dictionary Server),即远程字典服务,是一个开源的、使用ANSI C语言编写的、支持网络的、可基于内存亦可持久化的日志型Key-Value数据库。以下是关于Redis的详细介绍: 一、Redis的特点 数据类型丰富:Redis支持多种数据类型,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set

关于 python 字典报错 dictionary changed size during iteration 的理解

有时在 python 中对字典进行遍历或迭代过程中,会提示错误 dictionary changed size during iteration,这说明你对遍历或迭代的条件设置一定是错误的,你的遍历(迭代)过程在改变字典的长度(无论是删除还是增加),而你的遍历(迭代)的依据却直接来自这个字典,这是 python 不能接受的,所以会报错, 为什么说遍历(迭代)的依据直接来自字典是不可以的,

50个BA分析工具第七个-Data Dictionary

工具名称: Data Dictionary(数据字典)   工具介绍: Data Dictionary(数据字典),其实是用在数据建模中的一个工具,用来标准化这个数据元素的定义来支撑我们这个对数据源数据有一个共识的理解。关于数据字典在使用上没有非常明确的定义。不同企业的做法是不一样的。   解决问题: • 定义数据的编码规范,以及它的一些属性,包括一些元数据 • 在一个项目初期,设

Codeforces Round 953 (Div. 2) (A~D)

文章目录 写在前面A. Alice and Books思路code B. New Bakery思路code C. Manhattan Permutations思路code D. Elections思路code Codeforces Round 953 (Div. 2) 写在前面 今天挑了一场div2来打,感觉这场div2的难度比暑假div2的难度低很多,A~D这四道题的考点都

[alien Invasion]python小游戏阶段总结

以后可能还会进行代码重构,以最终版本为准 本篇文章旨在理清程序脉络,方便以后写类似的程序时提供一个习惯的思路 未经允许,禁止转载 实体区 ship.py import pygameclass Ship():def __init__(self,screen,ai_settings):#储存以便后续使用self.screen=screenself.ai_settings=ai_se

C# Dictionary->ConcurrentDictionary和哈希表

一、C# Dictionary C# 中的 Dictionary 是一个用于存储键值对的集合。每个键必须是唯一的,且每个键对应一个值。Dictionary 提供了快速查找、添加和删除键值对的功能。 基本用法如下: // 创建一个 DictionaryDictionary<int, string> dictionary = new Dictionary<int, string>();// 添

ConcurrentDictionaryHelper 字典安全 ConcurrentDictionary与Dictionary

Imports System.Collections.ConcurrentImports System.Runtime.CompilerServicesPublic Module ConcurrentDictionaryHelper''' <summary>''' 添加数据''' </summary>''' <typeparam name="TKey"></typeparam>''' <type

Dictionary的TryGetValue方法

这个方法时常会用到,而且很有效。TryGetValue:获取与指定的键相关联的值 比如我们读取一个xml文件,让后将其写入到Dictionary中存储: [csharp]  view plain  copy private static Dictionary<string, string> SqlKeyValues = null;         /// <summar