本文出处:SmartCat代码生成器
一款实用的代码生成器 希望给大家带来方便 也请大家多提需求和反馈bug http://ouchen.tech
本文出处:SmartCat代码生成器
一款实用的代码生成器 希望给大家带来方便 也请大家多提需求和反馈bug http://ouchen.tech
编写一个C#程序,模拟实现一个**有限状态机(Finite State Machine, FSM)**,满足以下要求:1. 状态机包含三个状态:`Idle`、`Running`、`Paused`,以及一个终止状态`Stopped`;2. 状态之间有如下合法转换: - `Idle` → `Running`(通过`Start`事件) - `Running` → `Paused`(通过`Pause`事件) - `Paused` → `Running`(通过`Resume`事件) - `Running`或`Paused` → `Stopped`(通过`Stop`事件) - 任意状态……
编写一个C#程序,实现一个支持通配符匹配的函数,满足以下条件:- 函数签名为 `bool IsMatch(string s, string p)`,其中 `s` 是目标字符串,`p` 是包含通配符的模式字符串。- 支持以下模式规则: - `'?'` 匹配任意单个字符。 - `'*'` 匹配任意字符序列(包括空序列)。- 匹配必须覆盖整个目标字符串(即不能部分匹配)。要求:1. 不能使用正则表达式(Regex)相关类或方法。2. 时间复杂度需优于 O(n^3)(即不能使用暴力递归)。3. 使用动态规划优化时间效率,并尽可能降低空间复杂度。示例:```cshar……
编写一个C#程序,实现一个可扩展的表达式解析器,支持以下功能:1. 解析并计算包含加(+)、减(-)、乘(*)、除(/)四则运算的表达式;2. 支持括号以改变运算优先级;3. 支持自定义变量替换,例如表达式中出现 `x`、`y` 等变量应能从上下文中获取其值;4. 支持自定义函数,例如支持 `sin(x)`、`log(x)` 等数学函数,且允许用户动态注册新的函数;5. 程序需具备良好的错误处理机制,如检测非法字符、不匹配的括号、除以零等异常情况,并给出具体错误信息;6. 要求使用面向对象设计,体现扩展性和可维护性。请设计并实现该表达式解析器的核心类和接口,并完成一个示例程序验证其功能。
实现一个高效的字符串压缩算法,要求如下:- 输入一个字符数组 `char[] chars`,每个字符都是小写英文字母('a' 到 'z')。- 将其就地(in-place)压缩,压缩后的形式是:"字符+该字符连续出现的个数",例如 `'a'` 连续出现 3 次则压缩后是 `'a3'`。- 如果某个字符只出现一次,则不写入该数字,例如 `'a1'` 是非法的,应该只保留 `'a'`。- 所有字符的压缩后形式应当连续存储在输入数组的前部,并返回压缩后的长度。- 不允许使用额外的辅助数……
有一个包含100个元素的整数数组,元素值为1到100之间的数字,其中只有一个数字是重复的。请使用C#编写一个算法,在不使用额外存储空间且时间复杂度为O(n)的情况下找出这个重复的数字。
编写一个C#程序,实现一个支持通配符匹配的正则表达式引擎,支持以下规则:- 字符 `?` 可以匹配任意单个字符;- 字符 `*` 可以匹配任意内容(包括零个或多个任意字符);- 字符串起始和结束无需使用 `^` 和 `$` 显式锚定;- 匹配必须是全字符串匹配,即整个输入字符串必须匹配整个模式。例如:```IsMatch("ab", "a?") == trueIsMatch("abc", "a*") == trueIsMatch("abc", "a?c") == trueIs……
实现一个高效的对象池系统,满足以下要求:1. 对象池支持异步获取和释放对象,确保线程安全。2. 每个对象具有生命周期管理,若对象空闲时间超过指定超时时间,则自动销毁。3. 对象池支持动态扩容与缩容,根据使用情况调整池中对象数量,保持最小和最大限制。4. 提供统计功能,可实时获取当前活跃对象数、空闲对象数和创建过的对象总数。请使用C#编写一个泛型对象池类 `ObjectPool`,其中 T 是池化对象的类型,要求实现以下接口:```csharppublic interface IObjectPool{ Task GetAsync(CancellationToken cancellation……
编写一个C#程序,使用递归和动态规划两种方法实现计算斐波那契数列第n项的函数,并比较两种方法在时间效率和空间效率上的差异。要求程序能够处理n的取值范围为0到100,且在n较大时不会出现栈溢出或内存溢出问题。同时,要求函数对输入n进行有效性校验,若n为负数则抛出异常。
编写一个C#程序,使用递归和LINQ实现对一个包含嵌套子集合的异构集合进行展平(Flatten)操作,并对结果进行排序。要求如下:1. 输入为一个`object`类型的集合,其中每个元素可以是: - 一个单独的值(如整数、字符串等); - 一个`IEnumerable`对象(即子集合,可能嵌套多层)。2. 实现一个方法`FlattenAndSort`,其签名如下: ```csharp public static List FlattenAndSort(IEnumerable input) ```3. 该方法需要: - 递归地展开所有层级的嵌套集合; - 将最终的所有……