c#题例-2025-09-15 12:20:03
日期: 2025-09-15 分类: AI写作 4次阅读
编写一个C#程序,实现一个支持通配符匹配的正则表达式引擎子集。该引擎需要支持以下规则:
- 字符 `.` 匹配任意单个字符
- 字符 `*` 匹配零或多个前面的元素(即前一个字符或通配符)
- 匹配应覆盖整个输入字符串,而不仅仅是部分匹配
函数签名如下:
```csharp
bool IsMatch(string s, string p)
```
其中:
- `s` 是输入字符串(长度范围:0 到 200)
- `p` 是包含通配符的模式字符串(长度范围:0 到 200)
要求:
1. 不使用任何正则表达式库(包括 System.Text.RegularExpressions)。
2. 实现动态规划算法,时间复杂度控制在 O(m × n),其中 m 和 n 分别为 `s` 和 `p` 的长度。
3. 代码需具有良好的可读性、健壮性及边界情况处理能力。
示例:
```csharp
IsMatch("aa", "a") // false
IsMatch("aa", "a*") // true
IsMatch("ab", ".*") // true
IsMatch("aab", "c*a*b") // true
IsMatch("aab", "a*b") // true
IsMatch("abc", "ab*c") // true
IsMatch("abcd", "a*ebc") // false
```
请编写完整的 `IsMatch` 函数并附上单元测试代码验证其正确性。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:AI写作
上一篇:无
精华推荐