zoukankan      html  css  js  c++  java
  • LeetCode : 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:
    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<char,string> map;  
        unordered_map<string,char> map2;  
        vector<string> vec;  
        int j=0;  
        for(int i=0;i<str.size();i++){  
            if(str[i]==' '){  
                string tmp =str.substr(j,i-j);  
                vec.push_back(tmp);  
                j=i+1;  
            }  
            if(i==str.size()-1){  
                string tmp =str.substr(j,i-j+1);  
                vec.push_back(tmp);  
            }  
    
        }  
        if(pattern.size()!=vec.size())return false;  
        for(int i=0;i<pattern.size();i++){  
            if(map.find(pattern[i])==map.end()&&map2.find(vec[i])==map2.end()){  
                map.insert(make_pair(pattern[i],vec[i]));  
                map2.insert(make_pair(vec[i],pattern[i]));  
            }  
            else if(map[pattern[i]]!=vec[i]||map2[vec[i]]!=pattern[i])return false;  
    
        }  
    
        return true;  
    
    }  
    
    };  
  • 相关阅读:
    选修课作业专栏
    js字符串和数组方法总结
    转Y-slow23原则(雅虎)
    前端优化总结和技巧(原创)
    阿里dom操作题
    基本的dom操作方法
    html5中的postMessage解决跨域问题
    mark一篇文章--用nodejs搭建一个本地反向代理环境
    html5语义化标签总结二
    转html5语义化标签总结一
  • 原文地址:https://www.cnblogs.com/chankeh/p/6850070.html
Copyright © 2011-2022 走看看