Wolfram 언어

텍스트와 언어 처리

회문

회문은 앞뒤 어느 쪽에서 읽어도 같은 숫자, 단어 또는 문장을 말합니다. PalindromeQ, 해당 옵션, 기타 스트링과 관련한 낮은 수준의 함수를 사용하여 회문 구조의 단어와 문장을 테스트합니다.

다음의 영어 회문을 살펴봅니다.

In[1]:=
Click for copyable input
PalindromeQ["racecar"]
Out[1]=

Anna라는 이름은, 대문자 소문자의 차이를 무시한다면 회문으로 볼수있습니다.

In[2]:=
Click for copyable input
PalindromeQ["Anna", IgnoreCase -> True]
Out[2]=

Decapitalize를 사용하여 첫글자를 소문자로 변경할 수 있습니다.

In[3]:=
Click for copyable input
PalindromeQ[Decapitalize["Anna"]]
Out[3]=

프랑스어 동사 "rêver" 역시 추가 기호를 무시하면 회문으로 불수있습니다.

In[4]:=
Click for copyable input
PalindromeQ["rêver", IgnoreDiacritics -> True]
Out[4]=

RemoveDiacritics를 사용하여 동사를 처리합니다.

In[5]:=
Click for copyable input
PalindromeQ[RemoveDiacritics["rêver"]]
Out[5]=

회문 구조의 문장의 경우, 일반적으로 먼저 문자열을 처리할 필요가 있습니다.

In[6]:=
Click for copyable input
sentence = "Now, sir, a war is won!";
In[7]:=
Click for copyable input
PalindromeQ[sentence]
Out[7]=
In[8]:=
Click for copyable input
StringDelete[sentence, PunctuationCharacter | Whitespace]
Out[8]=
In[9]:=
Click for copyable input
StringDelete[sentence, PunctuationCharacter | Whitespace]; PalindromeQ[%, IgnoreCase -> True]
Out[9]=

관련 예제