[問題]文字列を考えると、それは回文文字列であることを確認し、唯一のアルファベットと数字を考えるには、大文字小文字を無視することができます。
説明:この問題では、我々は有効な回文配列として空の文字列を定義します。
例1 : 入力:「男、計画、運河:パナマ」 出力:trueに 例2 : 入力:「CARレース」 の出力を:falseに
[思考]
良いこのアイデアを考えて、私たちは、両手LとR、各文字列の両端の先頭から比較を使用する文字が同じでない場合、falseを返します。もしそうなら、あと、l ++、r--の、中心に近いです。
しかし、鍵が鍵であり、有効な各文字、および大文字小文字を検出することです。そして、プログラムが有効なケースなしの文字の文字列を解決する必要があります!
ショートカットレターケースの変換:
統一国立成功大学は書いた:CH&0b11011111略称:CH&0xDF
0x20の| CH:0b00100000略語| CH:小文字に統一
[説明]
クラス解決{ パブリック: BOOLのisValid(チャーC){ もし、((C> = ' ' && C <= ' Z ')||(C> = ' ' && C <= ' Z ' ) ||(c > = ' 0 ' && C <= ' 9 ' )){ 戻り偽。 } を返す真。 もし(S ==は「」)を返す 真。 INTは L = 0、R = s.length() - 1 ; 一方、(L < R){ 一方(のisValid(S [L])&&(L <R))L ++ 。 一方(のisValid(S [R])&&(L <R))r--の。 もし(L < R){ もし、((S [L ++] | の0x20)=(S [r--の] |!の0x20 )){ 戻り 偽。 } } } を返す 真; } }。