当前位置:网站首页>力扣每日一题-第44天-290. 单词规律
力扣每日一题-第44天-290. 单词规律
2022-08-01 07:25:00 【重邮研究森】
2022.7.31今天你刷题了吗?
题目:
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。
分析:
给定两个字符串,需要判断它们是否满足匹配条件,举例如下:
“aabb” “cat cat dog dog”
相当于a=cat b=dog,则满足条件
“aabb” “cat dog cat dog”
因为a=cat,后面又有a=dog,则不满足
“aab” “cat cat cat cat”
数量对不上,不满足
因此,对于“cat cat”字符串,我们先把他保存在vector中,然后遍历“aabb”字符串,每次遍历需要判断两个条件。1.“aabb”中已经存在并且当前的aabb对应的cat不一样,则返回fasle。
2.“aabb”中不存在并且但前的cat也存在,则返回false
解析:
class Solution {
public:
bool wordPattern(string pattern, string s) {
unordered_map<char, string>u1;
vector<string>vec;
string s1;
for (int i = 0; i < s.size(); i++)
{
if (s[i] != ' ')
{
s1 += s[i];
}
else
{
vec.push_back(s1);
s1.clear();
}
}
vec.push_back(s1);
s1.clear();
if (pattern.size() != vec.size())
{
return false;
}
for (int i = 0; i < pattern.size(); i++)
{
if (u1.count(pattern[i]) && u1[pattern[i]] != vec[i])//aa存在,并且aa对于的值和现在不一样
{
return false;
}
else if (!(u1.count(pattern[i])))
{
for (auto it : u1)
{
if (it.second == vec[i])
{
return false;
}
}
}
u1[pattern[i]] = vec[i];
}
return true;
}
};边栏推荐
- 特别数的和
- C语言学习概览(二)
- 爬虫基本原理介绍、实现以及问题解决
- 【ASWC Arxml结构分解】-7-Explicit(显式)和Implicit(隐式) Sender-Receiver communication描述差异
- 最小生成树
- Bean的生命周期
- 实战演练 Navicat 中英文模式切换
- POJ1251丛林之路题解
- Fist game copyright-free music download, League of Legends copyright-free music, can be used for video creation, live broadcast
- LevelSequence源码分析
猜你喜欢
随机推荐
特殊的日子,值得纪念
响应式织梦模板园林花卉类网站
选择排序—直接选择排序和堆排序
从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)
Bean的生命周期
响应式织梦模板园林景观类网站
零代码网站开发利器:WordPress
Offer刷题——1
pytest接口自动化测试框架 | 集成Allure测试报告
JVM: Runtime Data Area - PC Register (Program Counter)
华为深度学习课程第九章——卷积神经网络以及案例实践
Offer brush questions - 1
Golang: go to connect and use mysql
并发编程13-JUC之CountDownLatch
Golang: go open web service
小程序全面屏手势配置案例
2022杭电多校第二场1011 DOS Card(线段树)
Practical training Navicat Chinese and English mode switching
关于App不同方式更新的测试点归纳
研发过程中的文档管理与工具









