简单面试题的思层次思考:
原贴地址:
http://bbs.csdn.net/topics/390306242?page=1#post-393131256
内容简单回顾:
第一题:两个Int数组,都是从小到大的排列,需要合并成一个新的数组,也是从小到大排列,请写出性能比较好的代码。
Fun(int a[m],int b[n])
{
}
第二题:已经有一个包括了多行文本的字符串。请写一个函数,能够输出字符串中最长的行和最短的行。如果最长和最短的不止一行,请输出最长和最短的多行。请写出性能比较好的代码。
Fun(string lines){
1、拆分成多行;
2、循环为每行计算长度,记录最大和最小行的位置;
3、打印输出
}
其中,二楼的回复个人觉得最为闪耀(43楼的大神用的是汇编- -)
C# code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int [] Fun1( int [] a, int b[]) { return a.Concat(b).OrderBy(x => x).ToArray(); } Tuple< string [], string []> Fun2( string [] lines) { var query = lines.GroupBy(x => x.Length).OrderBy(x => x.Key); return new Tuple< string [], string []>() { Item1 = query.First().ToArray(), //min Item2 = query.Last().ToArray() //max }; } |
完全是用Lamda表达式,没有用到Linq
惊叹之余(本人以前从来没有用到过Lamda和Linq来进行排序和查询):
本人也查了一些相关的次数后,做出自己的总结:
1.string txt = "www.bj.com/p1a33c33d2f4g9h11m2/"; 匹配p1 c33 h11这类的内容
Regex.Matches(txt, "[a-zA-Z][0-9]{1,}" ).OfType<Match>().Select(x => x.Value).ToList().ForEach(p => Console.WriteLine(p)); |
2."663,662,664" 执行后'662-663-664'
string .Join( "-" ,list.OrderBy(x=>x).ToArray()); |
3.“Action=CX&AgentAccount=SH2009&Orderid=SH2009_05150001”得到一个Dictionary<strig,string>
Dictionary<string, string> dic = dicstr.Split('&').ToDictionary(x => x.Split('=')[0], p => p.Split('=')[1]);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?