Java算法-力扣leetcode-290. 单词规律

290. 单词规律

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

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

示例1:

复制代码
输入: pattern = "abba", s = "dog cat cat dog"
输出: true

示例 2:

复制代码
输入: pattern = "abba", s = "dog cat cat fish"
输出: false

示例 3:

复制代码
输入: pattern = "aaaa", s = "dog cat cat dog"


输出: false

提示:

  • 1 <= pattern.length <= 300
  • pattern 只包含小写英文字母
  • 1 <= s.length <= 3000
  • s 只包含小写英文字母和 ' '
  • s 不包含 任何前导或尾随对空格
  • s 中每个单词都被 单个空格 分隔

复制代码
class Solution {
    public boolean wordPattern(String pattern, String s) {

        String[] sArray = s.split(" ");
        if(pattern.length()!=sArray.length){
            return false;
        }
        Map<Character, String> map = new HashMap<Character, String>();
        for (int i = 0; i < pattern.length(); i++) {
            char c1 = pattern.charAt(i);
            if (map.keySet().contains(c1)) {
                if (!sArray[i].equals(map.get(c1))) {
                    return false;
                }
            }else{
                if(map.values().contains(sArray[i])){
                    return false;
                }
                map.put(c1, sArray[i]);
            }
        }
        return true;
    }
}
相关推荐
MicroTech20252 分钟前
微算法科技(NASDAQ:MLGO)后量子区块链安全架构:基于模块化格密码的抗量子签名机制
科技·算法·区块链
Zzj_tju4 分钟前
Java 从入门到精通(九):集合框架入门,List、Set、Map 到底该怎么选?
java·开发语言·list
东离与糖宝5 分钟前
Java 26惰性常量+HTTP/3:AI微服务启动提速5倍实战
java·人工智能
米粒16 分钟前
力扣算法刷题 Day 24
算法·leetcode·职场和发展
郝学胜-神的一滴6 分钟前
从线程栈到表达式求值:栈结构的核心应用与递归实现
开发语言·数据结构·c++·算法·面试·职场和发展·软件工程
月落归舟6 分钟前
排序算法---(二)
数据结构·算法·排序算法
爱码少年9 分钟前
Springboot 工程中快速判断web应用服务器类型
java·spring boot
敲代码的嘎仔10 分钟前
Java后端开发——多线程面试题
java·开发语言·面试·多线程·八股·threadlocal·
sonnet-102910 分钟前
交换排序算法
java·c语言·开发语言·数据结构·笔记·算法·排序算法
NGC_661111 分钟前
深度解析 ConcurrentHashMap 1.8:put 与 get 核心流程全解
java·开发语言