题目要求:把一段字符串用“右起竖排”的古文格式输出
例:
输入:
床前明月光疑是地上霜举头望明月低头思故乡
输出:
低|举|疑|床
头|头|似|前
思|望|地|明
故|明|上|月
乡|月|霜|光
C#解法:
using System;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Print(string text, int offset)
{
text
.Select((c, i) => new { Char = c, Index = i })
.GroupBy(p => p.Index % offset, p => p.Char.ToString())
.ToList()
.ForEach(g => Console.WriteLine(string.Join("|", g.Reverse().ToArray())));
}
static void Main(string[] args)
{
Print("床前明月光疑是地上霜举头望明月低头思故乡", 5);
}
}
}
参考:http://blog.csdn.net/zwvista/article/details/5491393
第一眼看到这个题,被题目所吸引,等看到代码,发现代码写的如此的简练,虽个人有些C#基础,但又被代码所折服!故转
分析:
编号:
床1a
前2b
明3c
月4d
光5e
疑6a
是7b
地8c
上9d
霜10e
举11a
头12b
望13c
明14d
月15e
低16a
头17b
思18c
故19d
乡20e
分组:
床1a 疑6a 举11a 低16a
前2b 是7b 头12b 头17b
明3c 地8c 望13c 思18c
月4d 上9d 明14d 故19d
光5e 霜10e 月15e 乡20e