回文
回文是指从左到右或从右到左读法相同的一个数字、词语或句子. 用 PalindromeQ、其选项以及其他字符串相关的的低等级函数来测试回文词语和句子.
以下为英文回文.
In[1]:=
![Click for copyable input](assets.zh/palindromes/In_17.png)
PalindromeQ["racecar"]
Out[1]=
![](assets.zh/palindromes/O_13.png)
名字 Anna 也是一个回文,但需要忽略大小写.
In[2]:=
![Click for copyable input](assets.zh/palindromes/In_18.png)
PalindromeQ["Anna", IgnoreCase -> True]
Out[2]=
![](assets.zh/palindromes/O_14.png)
Decapitalize 可以作为将首字母变为小写的另一种方法.
In[3]:=
![Click for copyable input](assets.zh/palindromes/In_19.png)
PalindromeQ[Decapitalize["Anna"]]
Out[3]=
![](assets.zh/palindromes/O_15.png)
法语动词 "rêver" 同样也是一个回文,但需要忽略变音符.
In[4]:=
![Click for copyable input](assets.zh/palindromes/In_20.png)
PalindromeQ["rêver", IgnoreDiacritics -> True]
Out[4]=
![](assets.zh/palindromes/O_16.png)
换作用 RemoveDiacritics 来处理动词.
In[5]:=
![Click for copyable input](assets.zh/palindromes/In_21.png)
PalindromeQ[RemoveDiacritics["rêver"]]
Out[5]=
![](assets.zh/palindromes/O_17.png)
在回文句子中,通常也需要对起始字符串进行处理.
In[6]:=
![Click for copyable input](assets.zh/palindromes/In_22.png)
sentence = "Now, sir, a war is won!";
In[7]:=
![Click for copyable input](assets.zh/palindromes/In_23.png)
PalindromeQ[sentence]
Out[7]=
![](assets.zh/palindromes/O_18.png)
In[8]:=
![Click for copyable input](assets.zh/palindromes/In_24.png)
StringDelete[sentence, PunctuationCharacter | Whitespace]
Out[8]=
![](assets.zh/palindromes/O_19.png)
In[9]:=
![Click for copyable input](assets.zh/palindromes/In_25.png)
StringDelete[sentence, PunctuationCharacter | Whitespace];
PalindromeQ[%, IgnoreCase -> True]
Out[9]=
![](assets.zh/palindromes/O_20.png)