zoukankan      html  css  js  c++  java
  • leetcode Word Pattern

    题目连接

    https://leetcode.com/problems/word-pattern/  

    Word Pattern

    Description

    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) {
    		unordered_map<string, char> A;
    		unordered_map<char, string> B;
    		size_t p, i, j = 0, n = pattern.length();
    		for (i = 0; i < n; i++) {
    			char &ch = pattern[i];
    			p = str.find(' ', j);
    			string ret = str.substr(j, p - j);
    			if (A.find(ret) == A.end()) A[ret] = ch;
    			else if (A[ret] != ch) return false;
    			if (B.find(ch) == B.end()) B[ch] = ret;
    			else if (B[ch] != ret) return false;
    			j = p + 1;
    		}
    		return i == pattern.size() && p == string::npos;
    	}
    };
  • 相关阅读:
    跨域
    redis安装
    iframe操作
    element-ui 合并相邻的相同行 span-method
    函数实现 a?.b?.c?.d
    git 使用流程 命令
    svg用作背景图
    js中的位运算符 ,按位操作符
    二十三种设计模式[23]
    二十三种设计模式[22]
  • 原文地址:https://www.cnblogs.com/GadyPu/p/5020558.html
Copyright © 2011-2022 走看看