Complete The Pattern #2

本文介绍如何使用LINQ高效地实现模式创建功能,包括模式生成逻辑、代码实现和示例应用,旨在提高代码的简洁性和可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Complete The Pattern #2

Description:

Task:

You have to write a function pattern which creates the following pattern upto n number of rows. If the Argument is 0 or a Negative Integer then it should return "" i.e. empty string.

Pattern:

(n)(n-1)(n-2)...4321
(n)(n-1)(n-2)...432
(n)(n-1)(n-2)...43
(n)(n-1)(n-2)...4
...............
..............
(n)(n-1)(n-2)
(n)(n-1)
(n)

Examples:

pattern(4):

4321
432
43
4

pattern(6):

654321
65432
6543
654
65
6

Note: There are no blank spaces

Hint: Use \n in string to jump to next line

 

之前做的几个练习题,看别人用Linq用的那么溜,看起来高大上,所以自己研究了一下,也开启了装逼模式

using System;
using System.Linq;

public class Kata
{
   public string Pattern(int n)
   {
     string result = string.Empty;
            if (n > 0)
            {
                result = string.Join(Environment.NewLine, Enumerable.Range(1, n).Reverse().Select(item => string.Join(string.Empty, Enumerable.Range(n - item + 1, item).Reverse())));
            }
            return result;
   }
}
Enumerable.Range(1, n)得到1,2,3...,9
然后Reverse获取倒序的数字9,8,7,...,1
再通过Select以及lambda表达式针对每一个生成一个不同的结果
item => string.Join(string.Empty, Enumerable.Range(n - item + 1, item).Reverse())
每一个item,生成对应的item,item-1,...,n-item+1 ,然后将这个结果用string.empty连接起来


转载于:https://www.cnblogs.com/chucklu/p/4614594.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值