package
0.0.0-20230809123828-b071cee2968a
Repository: https://github.com/codehanhan/leetcode-go.git
Documentation: pkg.go.dev
# README
面试题 16.18.模式匹配
1. 题目描述
你有两个字符串,即 pattern
和 value
。 pattern
字符串由字母 "a"
和 "b"
组成,用于描述字符串中的模式。例如,字符串 "catcatgocatgo"
匹配模式 "aabab"
(其中 "cat"
是 "a"
, "go"
是 "b"
),该字符串也匹配像 "a"
、 "ab"
和 "b"
这样的模式。但需注意 "a"
和 "b"
不能同时表示相同的字符串。编写一个方法判断 value
字符串是否匹配 pattern
字符串。
示例 1:
输入: pattern = "abba", value = "dogcatcatdog"
输出: true
示例 2:
输入: pattern = "abba", value = "dogcatcatfish"
输出: false
示例 3:
输入: pattern = "aaaa", value = "dogcatcatdog"
输出: false
示例 4:
输入: pattern = "abba", value = "dogdogdogdog"
输出: true
解释: "a"="dogdog",b="",反之也符合规则
提示:
1 <= len(pattern) <= 1000
0 <= len(value) <= 1000
- 你可以假设
pattern
只包含字母"a"
和"b"
,value
仅包含小写字母。
标签
数学
字符串
回溯
枚举
2. 解题
由于a,b匹配的内容与长度都不明确,因此需要枚举出a,b的长度进行处理
- 考虑pattern为空
- pattern不为空,记录patter中a,b的数量
- value为"", 判断pattern是否为一种字符组成
- value不为""
- 处理patter只有一种字符串的情况
- 处理pattern中'a','b'可为""的情况
- 枚举'a', 'b'所代表的字符串长度