Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace TxtTranspose {
- static class Program {
- static void Main(string[] args) {
- var txt = @"
- XCUALOVEYKBWSNG
- DUAWKCBEAUTYRJV
- YOUTHFSMGNEZLPR
- MHJREYWDKZLUSTJ
- FSUCCESSDHEALTH
- ENMQXPTIMELMSAQ
- VEXPERIENCEGHBW
- GHUMOURLOYMONEY
- SYZPOPULARITYNA
- AMKCFUNBXHUZYIX
- CWIHYSHAPPINESS
- HONESTYCFRIENDS
- KPYJAETWPOWEROC
- BTYACFREEDOMJMO
- RIWINTELLIGENCE".Trim().Replace("\r", "\n").Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList();
- var results = new List<IEnumerable<string>>();
- results.AddRange(txt.RotAll());
- results.AddRange(txt.Mirror().RotAll());
- foreach (var result in results) {
- Console.WriteLine("======");
- foreach (var line in result)
- Console.WriteLine(line);
- }
- Console.ReadLine();
- }
- public static IEnumerable<string> Mirror(this IEnumerable<string> foo) {
- foreach (var bar in foo)
- yield return bar.Aggregate("", (p, q) => q.ToString() + p);
- }
- public static IEnumerable<IEnumerable<string>> RotAll(this IEnumerable<string> foo) {
- IEnumerable<string> bar = foo;
- for (int i = 0; i < 4; i++)
- yield return bar = bar.Rot90();
- }
- public static IEnumerable<string> Rot90(this IEnumerable<string> foo) {
- for (int i = foo.First().Length - 1; i >= 0; i--)
- yield return foo.Aggregate("", (p, q) => p + q[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement