290. Word Pattern
来源:互联网 发布:网络配线图怎么画 编辑:程序博客网 时间:2024/06/05 20:37
Given a pattern
and a string str
, find if str
follows the same pattern.
Here follow means a full match, such that there is a bijection between a letter in pattern
and a non-empty word in str
.
Examples:
- pattern =
"abba"
, str ="dog cat cat dog"
should return true. - pattern =
"abba"
, str ="dog cat cat fish"
should return false. - pattern =
"aaaa"
, str ="dog cat cat dog"
should return false. - pattern =
"abba"
, str ="dog dog dog dog"
should return false.
Notes:
You may assume pattern
contains only lowercase letters, and str
contains lowercase letters separated by a single space.
Credits:
Special thanks to @minglotus6 for adding this problem and creating all test cases.
该题目思路和205题Isomorphic Strings 几乎完全一样,只不过变成了字符和string的映射罢了。
class Solution {public: bool wordPattern(string pattern, string str) { map<char,string>mp1; map<string,char>mp2; vector<string> vec; int len=str.size();//求字符串的长度这种函数最好还是放在FOR循环的外面,不然每次循环都要求一次长度,可能会导致超时 for(int i=0,j=0;i<len;i++){ if(str[i]==' '){ vec.push_back(str.substr(j,i-j)); j=i+1; } else if(i==len-1){ vec.push_back(str.substr(j,i-j+1)); } } if(pattern.size()!=vec.size())return false; for(int i=0;i<vec.size();i++){ if(mp1.find(pattern[i])==mp1.end()&&mp2.find(vec[i])==mp2.end()){ mp1[pattern[i]]=vec[i]; mp2[vec[i]]=pattern[i]; } else if(mp1[pattern[i]]!=vec[i]||mp2[vec[i]]!=pattern[i]) return false; } return true; }};
0 0
- 【leetcode】290. Word Pattern
- 【leetcode】290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern LeetCode
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- 290. Word Pattern
- Leetcode 290. Word Pattern
- 290. Word Pattern
- 【LeetCode】290. Word Pattern
- 290. Word Pattern
- LeetCode-290. Word Pattern
- LeetCode *** 290. Word Pattern
- UNIX网络编程之旅-配置unp.h头文件环境
- dubbo框架应用总结
- leetcode 每日一题 66. Plus One
- Java SE7新特性之try-with-resources语句
- 剑指offer03:二维数组中的查找
- 290. Word Pattern
- 源码下修改开机动画及开机logo
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- Java——DOM4J解析XML文件
- Android 图解向 Android Studio 中导入 Eclipse 工程的步骤
- Oracle学习笔记(2)——系统用户与表空间
- Redis 学习 ---- 6.整数集合
- 深度优先搜索
- discuz二级导航选择横排样式不显示的解决方法