csharp高级练习题:扫描排序。【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值