您的位置:首页 > 其它

LeetCode:Word Pattern

2016-01-12 12:52 351 查看


Word Pattern

Total Accepted: 21299 Total
Submissions: 77656 Difficulty: Easy

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.
Subscribe to see which companies asked this question

Hide Tags
Hash Table

Hide Similar Problems
(E) Isomorphic Strings (H)
Word Pattern II

code:

class Solution {
public:
    bool wordPattern(string pattern, string str) {
        map<char, int> cmap;
        map<string, int> smap;
        int n = pattern.size();
        istringstream in(str);

        int i=0;
        for(string word;in>>word;i++)
        {
            if(cmap[pattern[i]] != smap[word]) return false;
            cmap[pattern[i]] = smap[word] = i+1;
        }
        return i==n;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: