给定一个模式,和一个字符串str。返回str是否符合同样的模式。
这里的符合意味着全然的匹配,所以这是一个一对多的映射,在pattern中是一个字母。在str中是一个为空的单词。
比如:
pattern = “abba”。 str = “dog cat cat dog” 应该返回真。
pattern = “abba”, str = “dog cat cat fish” 应该返回假。
pattern = “aaaa”, str = “dog cat cat dog” 应该返回假。
pattern = “abba”, str = “dog dog dog dog” 应该返回假。
批注:
你可以假定pattern中仅仅包括小写字母,在str中仅仅包括被单个空格隔开的小写字母。
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.
我发现我真是越来越爱LeetCode了 ……
今天刚做了一道相似的题目:
LeetCode 205 Isomorphic Strings(同构的字符串)(string、vector、map)(*)
仅仅只是本题是升级版的,之前是字母匹配字母。如今是字母匹配单词了。
之前的题目示比例如以下:
当时我们实现了这么一个函数:
它可以依据字符串生成序列:
如今的需求也是相似的,仅仅只是更加升级了一点而已:
所以就封装了例如以下函数:
首先须要对整个长长的字符串进行依据空格进行分割,分割成的单个的字符串并加入到vector数组中。使用了流的相关函数。
后面的部分就和之前的一样了,由于是个封装好的函数了,对变量名也进行了一定的改动,前面的那个函数由此改动例如以下:
最后的比較例如以下,由于题目没有说pattern和str的长度一致,也就是说假设最后的索引长度不匹配了那肯定就是false了。
所以多加一行:
一点半了,大半夜的不睡觉~
没看之前写的这篇博客。只是思想应该是几乎相同的~ pattern方面还是一样,str的话就先构造出一个String数组。然后在HashMap中存储和推断String。而不是Char了。