[Swift Weekly Contest 114]LeetCode953. 验证外星语词典 | Verifying an Alien Dictionary

[Swift Weekly Contest 114]LeetCode953. 验证外星语词典 | Verifying an Alien Dictionary,第1张

概述In an alien language, surprisingly they also use english lowercase letters, but possibly in a different order. The order of the alphabet is some permutation of lowercase letters. Given a sequence of w

In an alIEn language,surprisingly they also use english lowercase letters,but possibly in a different order. The order of the Alphabet is some permutation of lowercase letters.

Given a sequence of words written in the alIEn language, and the order of the Alphabet, return true if and only if the given words are sorted lexicographicaly in this alIEn language.

Example 1:

input: words = ["hello","leetcode"],order = "hlabcdefgijkmnopqrstuvwxyz" Output: true Explanation: As ‘h‘ comes before ‘l‘ in this language,then the sequence is sorted. 

Example 2:

input: words = ["word","world","row"],order = "worldabcefghijkmnpqstuvxyz" Output: false Explanation: As ‘d‘ comes after ‘l‘ in this language,then words[0] > words[1],hence the sequence is unsorted. 

Example 3:

input: words = ["apple","app"],order = "abcdefghijklmnopqrstuvwxyz" Output: false Explanation: The first three characters "app" match,and the second string is shorter (in size.) According to lexicographical rules "apple" > "app",because ‘l‘ > ‘∅‘,where ‘∅‘ is defined as the blank character which is less than any other character (More info).

Note:

1 <= words.length <= 100 1 <= words[i].length <= 20 order.length == 26 All characters in words[i] and order are english lowercase letters.

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

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

1 <= words.length <= 100 1 <= words[i].length <= 20 order.length == 26 在 words[i] 和 order 中的所有字符都是英文小写字母。 72ms
 1 class Solution { 2     func isAlIEnSorted(_ words: [String],_ order: String) -> Bool { 3         var words = words 4         var a:[Int] = [Int](repeating:0,count:256) 5         var i:Int = 0 6         var j:Int = 0 7         for i in 0..<order.count 8         { 9             a[order.toInt(i)] = i10         }11         for i in 0..<words.count12         {13             for j in 0..<words[i].count14             {15                 //a:9716                 words[i][j] = (a[words[i][j].ascii] + 97).ASCII17             }18         }19          for i in 0..<(words.count - 1)20         {21             if words[i] > words[i+1]22             {23                 return false24             }25         }26         return true27     }28 }29 30 extension String {    31     //获取指定索引位置的字符,返回为字符串形式32     func charat(_ num:Int) -> String33     {34         return String(self[index(self.startIndex,offsetBy: num)]) 35     }36     37     //获取指定索引位置字符的ASCII整数值38     func toInt(_ num:Int) -> Int39     {40         let s = charat(num).unicodeScalars41         return Int(s[s.startIndex].value) 42     }43     44     //subscript函数可以检索数组中的值45     //直接按照索引方式截取指定索引的字符46     subscript (_ i: Int) -> Character {47         //读取字符48         get {return self[index(startIndex,offsetBy: i)]}49         50         //修改字符51         set52         {53             var str:String = self54             var index = str.index(startIndex,offsetBy: i)55             str.remove(at: index)56             str.insert(newValue,at: index)57             self = str58         }59     }60 }61 62 //Character扩展方法  63 extension Character  64 {  65   //属性:ASCII整数值(定义小写为整数值)66    var ascii: Int {67         get {68             let s = String(self).unicodeScalars69             return Int(s[s.startIndex].value)70         }71     }72 }73 74 //Int扩展方法  75 extension Int76 {77     //属性:ASCII值(定义大写为字符值)78     var ASCII:Character 79     {80         get {return Character(UnicodeScalar(self)!)}81     }82 }
总结

以上是内存溢出为你收集整理的[Swift Weekly Contest 114]LeetCode953. 验证外星语词典 | Verifying an Alien Dictionary全部内容,希望文章能够帮你解决[Swift Weekly Contest 114]LeetCode953. 验证外星语词典 | Verifying an Alien Dictionary所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1022339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存