当前位置:网站首页>力扣每日一题-第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;
}
};边栏推荐
猜你喜欢
随机推荐
Go 支持 OOP: 用 struct 代替 class
Json对象和Json字符串的区别
信息系统项目管理师必背核心考点(五十六)配置控制委员会(CCB)的工作
Golang:go获取url和表单属性值
Detailed explanation of the crawler framework Scrapy
Explosive 30,000 words, the hardest core丨Mysql knowledge system, complete collection of commands [recommended collection]
MVVM project development (commodity management system 1)
pytest接口自动化测试框架 | parametrize中ids的用法
图片无损压缩软件哪个好用:试试完全免费的JPG-C 图片批量修整压缩减肥工具吧 | 最新jpg批量修整工具下载
The Bean's life cycle
Electromagnetic compatibility introductory tutorial (6) test project
数据分析6
Golang:go模版引擎的使用
Vim简介
Golang: go open web service
dbeaver连接MySQL数据库及错误Connection refusedconnect处理
pytest接口自动化测试框架 | 使用函数返回值的形式传入参数值
Generate pictures based on the content of the specified area and share them with a summary
拳头游戏免版权音乐下载,英雄联盟无版权音乐,可用于视频创作、直播
app 自动化 打开app (二)









