当前位置: 首页 > news >正文

力扣-290.单词规律

Idea

  1. 先建立一个hashmap,记录s串中的每个单词以及对应的下标
  2. 再建立一个hashmap,记录pattern串中相同字母以及对应的下标
  3. 遍历pattern串时,遇到不同字母存到pat表中,同时将下标对应的s中的单词存入到查重test集中,因为如果输入样例为"abba",“dog dog dog dog”,无法得出正确答案
  4. 最后通过比较pattern中有相同字母的位置对应s中出现相同的word即可,否则为false

AC Code

class Solution {
public:bool wordPattern(string pattern, string s) {unordered_map<char,int> pat;unordered_map<int,string> word;int n = s.size();int index = 0;for(int i = 0; i < n; i++) {string tmp = "";while(s[i] != ' ' && i < n){tmp += s[i];i++;}word[index++] = tmp;}if(word.size() != pattern.size()) return false;unordered_set<string> test;for(int i = 0; i < pattern.size(); i++) {if(pat.find(pattern[i]) == pat.end()){pat[pattern[i]] = i;if(test.find(word[i]) != test.end()){return false;}test.insert(word[i]);}else {int con1 = pat[pattern[i]];int con2 = i;if(word[con1] != word[con2]) return false;if(pattern[con1] != pattern[con2]) return false;}}return true;}
};

在这里插入图片描述

http://www.lryc.cn/news/174563.html

相关文章:

  • 常见限流算法学习
  • JS面试相关
  • SSRF漏洞
  • Qt5开发及实例V2.0-第十八章-Qt-MyselfQQ实例
  • 当下IT测试技术员的求职困境
  • MR混合现实情景实训教学
  • 嵌入式C++总结
  • C语言之内存函数篇(3)
  • java面试题-学成在线项目
  • ViewBinding——Android之视图绑定
  • vue学习-04vue的props配置项和mixin混入
  • 九、多项式朴素贝叶斯算法(Multinomial NB,Multinomial Naive Bayes)(有监督学习)
  • 数据结构上机练习——单链表的基本操作、头文件、类定义、main函数、多种链表算法的实现,含注释
  • 如何通过AI视频智能分析技术,构建着装规范检测/工装穿戴检测系统?
  • C语言自定义类型(上)
  • Python - 小玩意 - 圣诞树背景音乐弹窗
  • The 2023 ICPC Asia Regionals Online Contest (1) E. Magical Pair(数论 欧拉函数)
  • <十三>objectARX开发:模拟实现CAD的移动Move命令
  • Autosar基础:模式管理-EcuM
  • 代码随想录Day42 | 01背包问题| 416. 分割等和子集
  • UML六大关系总结
  • ElementUI基本介绍及登录注册案例演示
  • Python爬虫-某网酒店评论数据
  • C# Onnx Yolov8 Detect 水果识别
  • 测试网页调用本地可执行程序(续1:解析参数中的中文编码)
  • C++入门知识
  • spring和springmvc常用注解
  • 【Java】Java生成PDF工具类
  • STL map,插入和查找的一些注意事项
  • 基于springboot+vue的客户关系管理系统(前后端分离)