A Window is an ASCII-art square with odd side length of at least 3, with a single character border around the edge as well as vertical and horizontal strokes in the middle:
#######
# # #
# # #
#######
# # #
# # #
#######
An MS Window is a window where the border is made only of the characters M
and S
. Your task is to write a program (or function) that takes a string and outputs a truthy value if the input is a valid MS Window, and a falsey value if it is not.
Specifications
- You may take the input as a newline-separated string or an array of strings representing each line.
- The border of an MS Window may contain a mix of M and S characters, but the inside will always be composed of spaces.
- You can choose to detect only windows with trailing newlines, or only windows without trailing newlines, but not both.
Test Cases
Truthy:
MMM
MMM
MMM
SMSMS
M M S
SMSMM
S S M
SMSMS
MMMMMMM
M S M
M S M
MSSSSSM
M S M
M S M
MMMMMMM
Falsey:
Hello, World!
MMMM
MSSM
MS M
MMMM
MMSMM
M S.M
sSSSS
M S M
MMSMM
MMMMMMM
M M M
MMMMMMM
M M M
MMMMMMM
MMMMMMM
M M M M
MMMMMMM
M M M M
MMMMMMM
M M M M
MMMMMMM
MMSSMSSMM
M M M
S S S
S S S
MMSSMSSMM
S S S
S S S
M M M
MMSSMSSMM