csharp基础练习题:该dropWhile功能【难度:1级】:
另一种主食功能的程序员.你有一个值序列和一些断言这些值.要删除元素的最长前缀,例如该谓语为每个元素如此.我们称这个dropWhile功能.它接受两个参数.第一个是值的序列,并且第二个是谓词函数.该功能不改变原始序列的值.
DEF ISEVEN(NUM):
返回NUM%2 == 0
ARR = [2,4,6,8,1,2,5,4,3,2]
dropWhile(ARR,ISEVEN)== [1,2,5,4,3,2]# 真
函数ISEVEN(NUM){
返回NUM%2 === 0;
}
VAR SEQ = [2,4,6,8,1,2,5,4,3,2];
dropWhile(SEQ,ISEVEN)// - > [1,2,5,4,3,2]
dropWhile [2,4,6,8,1,2,5,4,3,2]甚至 - - > [1,2,5,4,3,2]
自动ISEVEN = [](int值) - > BOOL {返回ABS(值)%2 == 0; };
dropWhile({2,4,6,8,1,2,5,4,3,2},ISEVEN)// - > {1,2,5,4,3,2}
FUNC ISEVEN =(值)=>值%2 == 0;
dropWhile(新INT [] {2,4,6,8,1,2,5,4,3,2},ISEVEN)// - > {1,2,5,4,3,2}
你的任务是落实dropWhile功能.如果你有一个[跨度功能(http://www.codewars.com/kata/the-span-function)躺在附近,这是一个班轮!或者,如果你有你的手[takeWhile功能(http://www.codewars.com/kata/the-takewhile-function),然后与dropWhile功能相结合,您可以在一个行实现跨功能.这是函数式编程之美:有有用的功能,其中有许多可以相互的角度来实施一大堆.
编程目标:
using System;
public class Kata
{
public static int[] DropWhile(int[] arr, Func pred)
{
return new int[] { };
}
}
测试样例:
namespace Solution
{
using NUnit.Framework;
using System;
[TestFixture]
public class SolutionTest
{
[Test]
public void BasicTest1()
{
var expected = new int[] { 1, 5, 4, 3 };
var actual = Kata.DropWhile(new int[] { 2, 6, 4, 10, 1, 5, 4, 3 }, isEven);
Assert.AreEqual(string.Join(", ", expected), string.Join(", ", actual));
最佳答案(多种解法):
更多关联题目:
csharp基础练习题:举手【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/the-dropwhile-function