“ABBACAB"の最後に最短文字列を追加しpalindromeにせよ。
競技プログラムの典型的問題

「Palindrome」の意味

palindromeは「回文」の意味。つまり、前から読んでも後ろから読んでも同じになる単語のことですね。日本語の例だと、「しんぶんし」とかがそう。

ちなみに、発音はカタカナで「パリンドロゥム」って感じ。

このpalindromeはちょっとレベルの高い単語で、海外ドラマにもあまり出てこない感じなんですが、面白いことに、ある業界では結構有名な単語なんです。

それが、IT業界

というのも、就職の面接なんかでプログラムに関する簡単なクイズやアルゴリズムが出されたりするんですが、そのクイズでpalindromeがよく登場するんです。

例えば、何か文字列、ここでは例えば「abcdc」が与えられたとして、この文字列の後ろにできるだけ短い文字列を付け足してpalindromeにしろというのが典型的な問題。

もちろん、最初に与えられた文字列をそっくり逆さにしてくっつければ「abcdccdcba」とpalindromeになりますが、この問題ではできるだけ短くするのがポイント。

色々考えると、正解は「ba」をくっつけて「abcdcba」にすることが分かります。

cdcが既にpalindromeになっていることを有効活用するんですね。

これをどんな文字列に対しても正解を出力するアルゴリズムを考えろというのが最初のクイズだったんです。

ということで、IT業界で有名な「palindrome」ですが、海外ドラマにもたまに出てきますので、どんな回文が登場してるか見てみましょう。

『ビッグバン★セオリー』の回文1

まずは『ビッグバン★セオリー』のシェルドン。Nice Hat, Bob Tahecinというpalindromeを考えついたそうです。使えない文字は最後に人名にしてますね。なお、Alpha-Bitsはアルファベット文字型のシリアルなので、自分のお椀に入ったもので即興で作ったということでしょうか。

シェルドン: This morning I made a palindrome with my Alpha-Bits. “Nice Hat, Bob Tahecin.”
『ビッグバン★セオリー』で、シェルドンはシリアルで回文を作る
The Big Bang Theory [Credit: CBS]

『名探偵モンク』の回文

次のシーンは『名探偵モンク』から。モンクを医者に連れてきたナタリーは、嫌がるモンクを励まそうと医者の名前がNevenと回文になっているのを指摘。しかしモンクは、最初の文字が大文字だから完璧なpalindromeではないとします(笑) モンクの神経質さを表してますね。

ナタリー: Oh, look. His first name is Neven. “N-E-V-E-N.” It’s a palindrome. That’s a good sign.
モンク: It’s not a perfect palindrome. The first “N” is capitalized.
『名探偵モンク』で、ナタリーが医者の名前が回文と指摘すると、モンクは大文字があるから完璧な回文でないとする
Monk [Credit: USA Network]

『ビッグバン★セオリー』の回文2

お次もシェルドン。今度は73を二進法で表すとpalindromeと主張。1001001だからだそうです(笑)

シェルドン: In binary, 73 is a palindrome: One, zero, zero, one, zero, zero, one.
『ビッグバン★セオリー』で、シェルドンは73が二進法で回文と主張
The Big Bang Theory [Credit: CBS]

実はこの数字でpalindromeって意外にも他の番組でも出てくるんですよね。

『コミ・カレ!!』では同じ二進法。

Because 127 in binary code would be a palindrome.

Community

『エレメンタリー ホームズ&ワトソン in NY』では、ベルフェゴール素数⤴️が登場という具合。ちなみに、1000000000000066600000000000001だそうです。

This is Belphegor’s Prime, okay? It’s a numeric palindrome.

Elementary

最後に

ということで、今回は「palindrome」という語彙について見てみました。英語学習者としては、palindromeな文を作るのはかなり大変そうですね。poopとかboobみたいに最初からなってるのなら分かるんですが(笑)

それでは〜