每日一题——验证外星语词典

简介: 每日一题——验证外星语词典

953. 验证外星语词典

题目描述:

题解:

func isAlienSorted(words []string, order string) bool {
  // 初始化一个map,代表在新字典序对应的权重
  alphabetMap := make(map[byte]int)
  for i, i2 := range order {
    alphabetMap[byte(i2)] = i
  }
  ans := true
  for i := 0; i < len(words)-1; i++ {
    // 如果二者相等,直接下一波循环
    if words[i+1] == words[i] {
      continue
    }
    shortLen := min(len(words[i+1]), len(words[i]))
    for j := 0; j < shortLen; j++ {
      if alphabetMap[words[i][j]] < alphabetMap[words[i+1][j]] {
        // 如果是最后俩单词,且满足字典序,直接返回true。
        if i+1+1 == len(words) {
          return true
        }
        break
      }
      // 比较在给定的字典序里的大小
      if alphabetMap[words[i][j]] > alphabetMap[words[i+1][j]] {
        ans = false
        return ans
      }
    }
    // 如果内存循环走完,这里我们要考虑,"apple","app" 这种情况,
    // 使用Compare函数,比较二者,如果大于0 就代表没有遵守给的字典序。
    if strings.Compare(words[i], words[i+1]) > 0 {
      ans = false
    }
  }
  return ans
}
func min(a, b int) int {
  if a > b {
    return b
  }
  return a
}

提交结果:

相关文章
|
7月前
|
C语言
C语—每日选择题—Day43
C语言—每日选择题—Day43
|
算法 测试技术
蓝桥算法_单词分析-wordAnalysis
蓝桥算法_单词分析-wordAnalysis
|
数据采集 存储 人工智能
【每周一坑】自动翻译 | 【解答】单词本
提示:翻译功能可以通过网上的翻译 API 实现,你所要了解的就是如何发起网络请求,以及如果对返回结果进行处理。这也算是基本的爬虫操作。
|
算法
蓝桥杯算法训练】字符串编辑
从键盘输入一个字符串(长度<=40个字符),并以字符 ’.’ 结束。编辑功能有:   1 D:删除一个字符,命令的方式为: D a 其中a为被删除的字符,例如:D s 表示删除字符 ’s’ ,若字符串中有多个 ‘s’,则删除第一次出现的。   2 I:插入一个字符,命令的格式为:I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。例如:I s d 表示在指定字符 ’s’ 的前面插入字符 ‘d’ ,若原串中有多个 ‘s’ ,则插入在最后一个字符的前面。   3 R:替换一个字符,命令格式为:R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部
201 0
|
机器学习/深度学习 自然语言处理 安全
将入学考试题搬进中文大模型数据集,20477道题目,还带4个候选答案
将入学考试题搬进中文大模型数据集,20477道题目,还带4个候选答案
206 0
【力扣·每日一题】1816. 截断句子(模拟)
【力扣·每日一题】1816. 截断句子(模拟)
83 0
【力扣·每日一题】1816. 截断句子(模拟)
|
搜索推荐 数据管理 关系型数据库
为了学习英语,我开发了一个单词对战系统
本系统主要由Android、服务端、数据管理端构成。客户端的页面实现通过网络与服务器REST API接口通信获取 MySQL数据。本人重点参与网上单词对战系统客户端、服务器以及数据库的设计、开发、测试工作。
311 0
为了学习英语,我开发了一个单词对战系统
|
自然语言处理
LeetCode每日一题——953. 验证外星语词典
某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。
122 0
|
开发者 Python
if-else 语 句|学习笔记
快速学习 if-else 语句
120 0