简单面试题的思层次思考:

原贴地址:

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]);

 

 

posted @   爱吃猫的鱼  阅读(210)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示