文字列、ポインタと配列にパリンドロームを検出する3つの方法を使用します

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/baiyibin0530/article/details/90228650

>>(デフォルト)スペースを終了される文字列を使用して読み、つまり、それだけで単語を読むことができます。


ポインタの問題

NULLポインタのデータ・アクセスは使用しないでください:
int型= nullptr p型を*;
* p型= 7; //が悪いです


回文

パリンドロームは、結果の逆綴りのそのスペルと順序が同じで、単語です。
たとえば、次のアンナpetepマラヤーラム語

:単語が回文であるかどうかを判断するには、2つの方法があり
、逆の順序で単語のスペルのコピーを取得し、元の単語とそれを比較するには。
最初の文字は単語が最後の文字と同じで表し、最後から二番目の文字は比較がダウンし続け、同じですと2番目の文字を決定し
、あなたが単語の中心に到達するまで。

回文を達成するための文字列を使用します

is_palindrome BOOL(のconst文字列&S)
{
    int型まず= 0; //最初の文字のインデックス
    int型最後= s.length() - 1 ; // の最後の文字のインデックス
    しばらく(最初<最終)
    {
        IF(S [第一] = S! falseに[最終])リターン;
        ++ファースト; //は前進
        --last; //は後方に移動
    }
    trueに復帰します。
}

実施パリンドローム配列を使用し
BOOLのis_palindromeを([]、INT N- SのCONSTチャー)
{
    int型まず= 0; //最初の文字インデックス
    INT最後= N - 1;の最後の文字の//インデックス
    一方(第<最終)
    {
        IF(S [第一] = S falseに[最終])リターン;!
        ++ファースト; //は前進
        --last; //は後方に移動
    }
    trueに復帰;
}

回文はポインタ使用して実装
(第一のconstのchar *、最後のconstのchar *)BOOLのis_palindromeを
{
 
    ながら、(まず<ラスト)
    {
        (!* = *姓)はfalseに戻ると、
        ++ファースト; //は前進
        --lastを; //後方に移動
    }
    ;真への復帰を
}

おすすめ

転載: blog.csdn.net/baiyibin0530/article/details/90228650