Word Pattern
Word Pattern
Given a
Here follow means a full match, such that there is a bijection between a letter in
Examples: pattern = pattern = pattern = pattern =
Notes: You may assume
Credits: Special thanks to @minglotus6 for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
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:
"abba"
, str = "dog cat cat dog"
should return true. "abba"
, str = "dog cat cat fish"
should return false. "aaaa"
, str = "dog cat cat dog"
should return false. "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.
Subscribe to see which companies asked this question
class Solution {
public:
bool wordPattern(string pattern, string str) {
auto i = 1;
string tmp,tmp_str;
istringstream is(str);
is>>tmp_str;
if(tmp_str==""&&pattern[0]=='\0')return true;
if(tmp_str==""&&pattern[0]!='\0')return false;
while(is>>tmp!=""){
if(pattern[i]=='\0')
return false;
if(pattern[i]==patterm[i-1]){
if(tmp != tmp_str)
return false;
}
else{
if(tmp == tmp_str)
return false;
}
tmp_str = tmp;
++i;
}
if(pattern[i]!='\0')return false;
return true;
}
};