Young87

SmartCat's Blog

So happy to code my life!

当前位置:首页 >AI写作

c#题例-2025-09-15 12:20:03

编写一个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

上一篇: c#题例-2025-09-15 17:53:18

下一篇: c#题例-2025-09-15 05:33:02

精华推荐