バックグラウンド
私はパリンドロームに触発されました。あなたは?、「回文ではないが」という衝撃的な事実が提示されて()()
いるので、())(
代わりに何であるかを自問()()
しました。答えは単純です。それは垂直対称軸を持つストリングです!
タスク
文字列S(または言語の適切な同等物)を入力として受け取り、垂直軸に沿った対称性をチェックし、それに応じて真実または偽の値を返すプログラムまたは関数を作成します。妥当な手段を使用して、入力を取得し、出力を提供できます。
反射対称性
垂直軸の周りの反射対称(または左右対称)は、ストリングの正確な中心にミラーを垂直に配置すると、ストリングの前半の反射イメージがストリングの後半と同一になることを意味します。
たとえば、次の文字列は垂直軸を中心に反射対称です。
()()
()()()
[A + A]
WOW ! WOW
OH-AH_wx'xw_HA-HO
(<<[[[T*T]]]>>)
(:)
)-(
())(()
qpqp
以下はそうではありません:
())(
((B))
11
+-*+-
WOW ! wow
(;)
qppq
コンテストのルール
•プログラムまたは関数は、印刷可能なASCII文字のみを受け取ります。空の文字列(もちろん対称です!)を合法的な入力として含めることも、含めないこともできます。
•垂直軸に関して対称とみなせるASCII文字は次のとおりです(最初のスペース、および大文字と小文字の違いに注意してください)。
!"'+*-.:=AHIMOTUVWXY^_ovwx|
「ミラーリングされた」と見なされるASCII文字とそれに対応する文字は次のとおりです。
()<>[]{}qpbd/\
彼らがミラーリングされているので、あなたは両方を持つことができ、なお()
だけでなく、として)(
、/\
および\/
など、
他のすべてのASCII印刷可能文字は、非対称であり、対応するミラー化された文字がないと見なす必要があります。
•これは、コードとゴルフの課題です。バイト単位で測定したプログラムが短いほど、どのプログラミング言語でも優れています。
•対称的なプログラムを作成する人々に称賛を!
注:この質問は、「Convenient Palindrome」の複製ではなく、括弧が反転している回文の文字列を確認する必要があります。この質問は2つの理由で異なります。
1)括弧以外の文字に関係するものについては、対称文字のみが逆順で表示されるため、他の質問の制限です。
2)「便利な回文」の概念ではなく、対称性の概念に基づいているため、鏡像化されたキャラクターは両方の順序、すなわち[]
と][
で現れることがあり、これにより、それを解決するプログラムは他の問題を解決するプログラムとは異なります。
8
「対称」と見なされないのですか?