当前位置: 代码迷 >> 综合 >> LeetCode 290. Word Pattern
  详细解决方案

LeetCode 290. Word Pattern

热度:59   发布时间:2023-10-09 14:12:12.0

Word Pattern


题目描述:

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:

  1. pattern = "abba", str = "dog cat cat dog" should return true.
  2. pattern = "abba", str = "dog cat cat fish" should return false.
  3. pattern = "aaaa", str = "dog cat cat dog" should return false.
  4. 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.


题目思路:

用两个哈希表,将两个字符串的对应位置给予相同的映射,如果已有映射不相同,则返回false


题目代码:

class Solution {
public:bool wordPattern(string pattern, string str) {istringstream in(str);map<string,int>table1;map<char, int>table2;int i = 0, n = pattern.length();for(string word; in >> word; i++){if(table2[pattern[i]] != table1[word] || i==n){return false;}else{table1[word] = table2[pattern[i]] = i+1;}}return i==n;}
};


  相关解决方案