leetcode Pattern
来源:互联网 发布:p2p网络借贷黑名单 编辑:程序博客网 时间:2024/04/29 21:23
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.
这里主要是字符与字符串对应映射问题,首先将有空格分开的字符串用一个vector<string>容器存储,对应与字符存储的pattern=n,然后利用C++映射容器map,涉及的主要有:
1.string &append(int n,char c); //在当前字符串结尾添加n个字符c
2.vector的push_back操作;
3.map<key,key_value>里find()函数返回一个迭代器指向键值为key的元素key_value,如果没找到就返回指向map尾部的迭代器
class Solution {public: bool wordPattern(string pattern, string str) { map<char ,string>Map1; map<string,char>Map2; vector<string>::iterator p; string temp(""); vector<string> vec; int l=str.length(); int i; for(i=0;i<l;i++){ if(str.at(i)==' '){vec.push_back(temp);temp="";continue;} else {temp.append(1,str.at(i));} } if(i==l)vec.push_back(temp); // for(p=vec.begin();p!=vec.end();p++){cout<<*p<<" ";} int n=pattern.length(); if(n!=vec.size())return 0; for(i=0;i<n;i++) {if(Map1.find(pattern[i])==Map1.end()&&Map2.find(vec[i])==Map2.end()) {Map1.insert(pair<char,string>(pattern[i],vec[i])); Map2.insert(pair<string,char>(vec[i],pattern[i])); } else if(Map1[pattern[i]]!=vec[i]||Map2[vec[i]]!=pattern[i])return 0; } return 1; }};
- leetcode Pattern
- leetcode | Word Pattern
- 【leetcode】290. Word Pattern
- leetcode 290: Word Pattern
- [Leetcode]Word Pattern
- [leetcode 290]Word Pattern
- LeetCode 290 Word Pattern
- 【leetcode】290. Word Pattern
- [LeetCode 290] Word Pattern
- leetcode 290 Word Pattern
- LeetCode 2 Word Pattern
- leetcode word-pattern
- leetcode: Word Pattern
- leetcode:Word Pattern
- [Leetcode]Word Pattern
- LeetCode Word Pattern
- LeetCode-Word Pattern
- LeetCode:Word Pattern
- WebSphere MQ 入门指南-1
- spark编程debug(持续更新!)
- iOS - 定位服务
- C语言文件操作函数大全
- 遗传算法和bp神经网络结合(神经网络权值学习)
- leetcode Pattern
- junior-week6
- 详解tomcat线程池原理及参数释义
- Android Studio教程06-快捷键、Debug的使用
- setsockopt函数解析
- iOS如何把所有界面的状态栏的字体颜色都设置为白色
- 代理模式---java设计模式
- Visual Studio 2010或者2012上安装VASSISTX
- flash sokect 通讯