首页 > 学院 > 开发设计 > 正文

290. Word Pattern

2019-11-11 06:12:31
字体:
来源:转载
供稿:网友

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.

class Solution {public: bool wordPattern(string pattern, string str) { map<char, string> m; map<string, char> m1; istringstream ss(str); string word; int i = 0; while(ss >> word){ if(m.count(pattern[i]) != 0){ if(word != m[pattern[i]]) return false; } else m[pattern[i]] = word; if(m1.count(word) != 0){ if(pattern[i] != m1[word]) return false; } else m1[word] = pattern[i]; ++i; } if(i != pattern.length()) return false; return true; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表