本文出处:SmartCat代码生成器
一款实用的代码生成器 希望给大家带来方便 也请大家多提需求和反馈bug http://ouchen.tech
本文出处:SmartCat代码生成器
一款实用的代码生成器 希望给大家带来方便 也请大家多提需求和反馈bug http://ouchen.tech
实现一个线程安全的LRU缓存(Least Recently Used),要求支持以下操作: 1. `Get(int key)`:如果键存在则返回对应的值,并将该键移到最近使用位置;否则返回-1。 2. `Put(int key, int value)`:插入或更新键值对,若缓存超出容量,则移除最久未使用的项。 要求所有操作的平均时间复杂度为 O(1),并保证在多线程环境下正确运行。禁止使用`ConcurrentDictionary`或任何内置线程安全集合类。需手动处理锁机制以避免死锁和性能瓶颈。
实现一个线程安全的LRU(最近最少使用)缓存,要求支持以下操作: 1. Get(key):如果键存在则返回对应的值,并将该键移到缓存最前端;否则返回-1。 2. Put(key, value):如果键已存在则更新其值并移到最前端;如果不存在则插入,若超出容量则移除最久未使用的项。 要求所有操作平均时间复杂度为 O(1),并支持高并发读写访问。同时,请解释你的设计如何保证线程安全及性能最优。
实现一个高效的字符串压缩算法,要求:- 压缩规则为:连续相同的字符以 `字符+出现次数` 的形式表示。 例如,`"aabcccaa"` 会压缩为 `"a2b1c3a2"`。- 当压缩后的字符串长度 **不小于** 原始字符串时,返回原始字符串。- 输入字符串只包含英文字母(大小写不限),且长度范围为 `0 请编写一个函数实现上述逻辑,并提供必要的单元测试用例验证其正确性。 函数签名如下:```csharpstring CompressString(string input){ // 实现逻辑}```---**附加要求:**- 时间复杂度控制……
编写一个C#程序,实现一个支持通配符的字符串匹配函数,满足以下条件:- 支持匹配 `?` 字符,表示可匹配任意单个字符。 - 支持匹配 `*` 字符,表示可匹配任意字符序列(包括空序列)。 - 匹配必须覆盖整个字符串,例如 `pattern = "ab*"` 不能匹配 `"ab123a"`。 - 实现匹配函数的算法时间复杂度不得超过 O(n * m),其中 n 和 m 分别是字符串和模式的长度。函数签名如下:```csharpbool IsMatch(string s, string p)```要求:1. 不能使用正则表达式库(如 `System.……
编写一个C#程序,实现一个支持通配符匹配的正则表达式引擎,支持以下规则:- `'.'` 匹配任意单个字符 - `'*'` 匹配零或多个前面的元素(贪婪匹配) - 原生支持字符串匹配,不使用 .NET 中的正则表达式库(如 `System.Text.RegularExpressions`)要求如下:1. 实现函数 `bool IsMatch(string s, string p)`,判断字符串 `s` 是否与模式 `p` 匹配。 2. 支持多星号情况(如 `"a***b"` 应等价于 `"a*b"`)。 3. 实现过……
编写一个C#程序,使用递归和分治策略实现一个表达式求值器,支持包含加、减、乘、除四则运算及括号的表达式计算。要求不使用`DataTable.Compute`、`NCalc`等现成表达式解析工具。同时,程序需正确处理运算符优先级与结合性,并在遇到除零或语法错误时抛出有意义的异常。接口定义如下:```csharppublic abstract class ExpressionEvaluator{ public abstract double Evaluate(string expression);}```你需要实现该抽象类的具体子类 `CustomExpressionEvaluator`,并……
实现一个高效的字符串压缩算法,要求: 1. 压缩规则如下:对于连续出现的相同字符,将其替换为该字符后跟其出现的次数(例如 `"aaabb"` 压缩为 `"a3b2"`)。 2. 若压缩后的字符串长度大于或等于原始字符串,则返回原始字符串。 3. 输入字符串仅包含英文字母(大小写敏感),且不包含空白字符。 请编写函数 `string CompressString(string input)` 实现该算法,并分析其时间复杂度与空间复杂度。
实现一个高效的字符串压缩算法,要求如下:1. 压缩规则:将连续重复的子串替换为 `(子串内容)[重复次数]`。 例如:`"aabbbcc"` 压缩为 `"a(2)b(3)c(2)"`。2. 对于嵌套重复的情况,应选择**最优**的压缩方式,即尽可能使压缩后的字符串长度最短。 例如:`"ababab"` 可以看作 `"ab"` 重复3次,压缩为 `"(ab)[3]"`,而不是 `"a(1)b(1)a(1)b(1)a(1)b(1)"`。3. 输入字符串只包含小写字……
编写一个C#程序,实现一个支持通配符匹配的正则表达式引擎子集。该引擎需要支持以下规则:- 字符 `.` 匹配任意单个字符 - 字符 `*` 匹配零或多个前面的元素(即前一个字符或通配符) - 匹配应覆盖整个输入字符串,而不仅仅是部分匹配 函数签名如下:```csharpbool IsMatch(string s, string p)```其中:- `s` 是输入字符串(长度范围:0 到 200) - `p` 是包含通配符的模式字符串(长度范围:0 到 200) 要求:1. 不使用任何正则表达式库(包括 System.Text.RegularExpressions)。 2. 实现动态……