zoukankan      html  css  js  c++  java
  • 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
        }
    }
    
  • 相关阅读:
    HDOJ1024(最大M子段和)
    HDOJ1025(最长上升子序列)
    HDOJ1022(模拟栈)
    HDOJ(1018)
    HDOJ1238(string)
    HDOJ1015(简单深搜)
    HDOJ1016(标准dfs)
    Tabbar视图切换,返回上一视图,添加item
    页面转换方法
    网络状态判断
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13993537.html
Copyright © 2011-2022 走看看