• leetcode刷题笔记290题 单词规律


    leetcode刷题笔记290题 单词规律

    源地址:290. 单词规律

    问题描述:

    给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。

    这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。

    示例1:

    输入: pattern = "abba", str = "dog cat cat dog"
    输出: true
    示例 2:

    输入:pattern = "abba", str = "dog cat cat fish"
    输出: false
    示例 3:

    输入: pattern = "aaaa", str = "dog cat cat dog"
    输出: false
    示例 4:

    输入: pattern = "abba", str = "dog dog dog dog"
    输出: false
    说明:
    你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。

    //利用map解决映射问题
    //1.全映射 AB两个集大小相同
    //2.单射 即A中元素必有且仅有一个B元素与之对应,转化为编程逻辑,即A中元素对应B中元素一一对应。通过检查两个映射实现。
    import scala.collection.mutable
    object Solution {
        def wordPattern(pattern: String, s: String): Boolean = {
            val str = s.split(" ")
            if (pattern.length != str.length) return false
    
            val ps = mutable.HashMap[Char, String]()
            val sp = mutable.HashMap[String, Char]()
    
            for (i <- 0 to pattern.length-1) {
                val p = pattern(i)
                val w = str(i)
                println("p: " + p)
                println("w: " + w)
                if (ps.contains(p) == true && ps(p) != w) return false
                ps(p) = w
                if (sp.contains(w) == true && sp(w) != p) return false
                sp(w) = p
            }
    
            return true
        }
    }
    
  • 相关阅读:
    Django登录逻辑,中间用到Cookie创建、读取、删除、等操作
    CBV和FBV用户认证装饰器
    Django Session配置
    Django基于Cookie装饰器实现用户认证
    回归博客
    Jenkins部署
    iostat命令详解
    被入侵和删除木马程序的经历
    centos7 centos-home 磁盘转移至centos-root下
    zabbix图形显示口口不显示汉字
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13993537.html
Copyright © 2020-2023  润新知