これまでに回文コードを記述しようとしたことがあるなら、どれだけの括弧が邪魔になる傾向があるか知っているでしょう。()()
、それがあるべきように、それはちょっと見えていても、回文されていない状態())(
と()(
両方見て非常にダムパリンドロームとの両方です。逆の場合は便利ではないでしょうか?
文字列は、逆の括弧()、括弧()、および中括弧()がすべて反転しているときに導出された文字列と等しい場合、便利な回文です。他のキャラクターは特別ではなく、反転が必要です。(ペアになっていることもありますが、そうではないことが多いため、省略されています。)()
[]
{}
<>
あなたの仕事は、あなたの言語で、プログラム(STDINで入力を取得する)または関数(単一の文字列引数を取得する)を書くことです。それ以外の場合、および(b)それ自体は回文的に便利です。
たとえば、次の入力は便利な回文です。
racecar
(a)(bb)(a)
void main(int argc, *char[] argv) {} (vgra []rahc* ,cgra tni)niam diov
そして、以下はそうではありません:
non-palindrome
A nut for a jar of tuna?
(old [style] parens) )snerap ]elyts[ dlo(
ingirumimusnocte)etconsumimurigni
インタープリター/コンパイラフラグを除き、外部状態(特定のファイル名、ディレクトリ構造、他のユーザー入力、Webアクセスなど)に依存することはできません。
また、使用している言語のコメント機能を利用して、コメントアウトまたは未使用のコードをレンダリングする「コメントトリック」を使用することはできません。たとえば、次のすべては、安全に削除または破棄できる非機能部品が含まれているため、許可されません(便利なパリンドローム性が失われます)。
{some code} // {edoc emos}
{some code} NB.BN {edoc emos}
"n\" ;{edoc emos} ;"; {some code}; "\n"
明らかにこれはそのようなすべてのケースをカバーするわけではないかもしれませんが、ここでの挑戦の精神はコメントと未解析**コードを使用して回文性を達成するのではなく、代わりに修正された括弧と括弧を使用することです。私はあなたを見ています、LISP、Brainfuck。
これはcode-golfであるため、最短のコードが優先されますが、あらゆる長さのコードを歓迎します。
* 一貫したtrueとfalseの値により1
、trueと0
false、またはFalse
trueと"no"
falseのように、これらの値が互いに異なり、プログラムの実行ごとに変更します。あなたのキャラクターを救うものを使用してください。
** 未実行と混同しないでください:有効で、奇妙なことをするかもしれませんが、呼び出されないコードは問題ありません。
(eslaf)fi
ますif(false)
。
()()
パリンドロームではないのかを理解するのに時間がかかりすぎた
if(false){some code}
か、未使用の変数?彼らは許可されていますか?