当前位置:网站首页>力扣每日一题-第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;
}
};边栏推荐
猜你喜欢
随机推荐
特殊的日子,值得纪念
Dbeaver connect the MySQL database and error Connection refusedconnect processing
rhcsa 第四天
special day to remember
pytest接口自动化测试框架 | parametrize中ids的用法
Three aspects of Ali: How to solve the problem of MQ message loss, duplication and backlog?
MVVM项目开发(商品管理系统一)
dbeaver连接MySQL数据库及错误Connection refusedconnect处理
LeetCode240+312+394
VSCode 快捷键及通用插件推荐
最小生成树
实战演练 Navicat 中英文模式切换
GO错误处理方式
R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:gtExtras包的pad_fn函数与gt::fmt函数一起用于填充包含数值的特定列、对数据列的数值进行十进制对齐(从小数点对齐)
Golang:go获取url和表单属性值
05-SDRAM:仲裁
搜索框字符自动补全
史上超强最常用SQL语句大全
JVM: Runtime Data Area - PC Register (Program Counter)
VoLTE基础学习系列 | 企业语音网简述









