csharp高级练习题:扫描排序.【难度:3级】:
你必须编写驱动一些硬件软件.
硬件是用来在不同的配置中执行的一些物理量的一些测量.
之间的两个配置有可以改变的倍数的参数.
但是,一些参数可能需要更长的时间来改变.
** 我们每次只改变一个参数**
作为一个例子,用探针,我们希望扫描4点的二维网格.
A B
çd
但探测器在垂直比水平移动得更快.
因此,一个好的扫描序列可以是A C d B
只用一个水平移动.
另一为例:
A B C
d电子网
G H I
凭借快速的水平运动和慢垂直运动给予:
A B全称Ëd G H I
现在给你的对象和一些参数提取的序列.
该提取是从最慢的分类,以最快的参数变化.
你的工作是一个拥有最快的扫描排序的序列.
在我们的第一个为例,该物体是一个Point类的一些坐标:
类Point {
…
公众诠释X {获得;} //水平坐标
公众诠释Ÿ{获得;} //纵坐标
…
}
和参数提取器:
新函数功能<点,对象> [] {
p值=> p.Z,//慢具有地狱
p值=> p.Y //沿ý移动探针是快
};
编程目标:
namespace Solution {
using System;
using System.Linq;
using System.Collections.Generic;
static class Kata
{
public static IEnumerable ScanSort(this IEnumerable , params Func[] extractors)
{
return input;
}
}
}
测试样例:
namespace Solution {
using NUnit.Framework;
using System;
class Point
{
public Point(int x = 0, int y = 0, int z = 0, int t = 0)
{
X = x;
T = t;
}
public int X {get;}
public int Y {get;}
public int Z {get;}
public int T {get;}
最佳答案(多种解法):
更多关联题目:
csharp基础练习题:显示X到Z的产品Y的.【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/scan-sort