Guest User

InverseFizzBuzz

a guest
May 4th, 2012
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. var result =
  2. (from start in Enumerable.Range(1, 15)
  3. let fizzBuzzSeq =
  4. (from i in Enumerable.Range(start, int.MaxValue - start)
  5. let fizzBuzz =
  6. i % 15 == 0 ? new { fizzbuzz = "fizzbuzz", index = i }
  7. : i % 3 == 0 ? new { fizzbuzz = "fizz", index = i }
  8. : i % 5 == 0 ? new { fizzbuzz = "buzz", index = i }
  9. : null
  10. where fizzBuzz != null
  11. select fizzBuzz).Take(inputList.Length)
  12. where fizzBuzzSeq.Select(f => f.fizzbuzz).SequenceEqual(inputList)
  13. select new {
  14. StartRange = fizzBuzzSeq.Select(f => f.index).First(),
  15. EndRange = fizzBuzzSeq.Select(f => f.index).Last()
  16. }).Aggregate((a, b) => (a.EndRange - a.StartRange) < (b.EndRange - b.StartRange) ? a : b);
Advertisement
Add Comment
Please, Sign In to add comment