• 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;
    	}
    };
  • 相关阅读:
    Vue部分知识
    JAVA基础之Map接口
    浏览器渲染机制及五大浏览器、四大内核
    WebPack
    Gulp
    GC垃圾回收机制
    Git操作(及操作github)
    Git、Github和GitLab的区别及与SVN的比较
    Node.js介绍
    JAVA基础之Set接口
  • 原文地址:https://www.cnblogs.com/GadyPu/p/5020558.html
Copyright © 2020-2023  润新知