Layers in a Rug

Published by Deep Xavier in

Write a function that counts how many concentric layers a rug has.

Examples

countLayers([
 "TTTTTTTTTTTTTT",
 "TEEEEEEEEEEEET",
 "TESSSSSSSSSSET",
 "TESHHHHHHHHSET",
 "TESHAAAAAAHSET",
 "TESHHHHHHHHSET",
 "TESSSSSSSSSSET",
 "TEEEEEEEEEEEET",
 "TTTTTTTTTTTTTT"
]) ➞ 5

countLayers([
  "AAAA",
  "ABBA",
  "AAAA"
]) ➞ 2

countLayers([
  "AAAAAAAAA",
  "ABBBBBBBA",
  "ABBAAABBA",
  "ABBBBBBBA",
  "AAAAAAAAA"
]) ➞ 3

countLayers([
  "AAAAAAAAAAA",
  "AABBBBBBBAA",
  "AABCCCCCBAA",
  "AABCAAACBAA",
  "AABCADACBAA",
  "AABCAAACBAA",
  "AABCCCCCBAA",
  "AABBBBBBBAA",
  "AAAAAAAAAAA"
]) ➞ 5

Notes

  • Multiple layers can share the same component so count them separately (example #2).
  • Layers will be horizontally and vertically symmetric.
  • There will be at least one layer for each rug.
Watch a quick demo on how Edabit works.