문자열, 포인터와 배열을 회문 감지의 세 가지 방법을 사용하여

면책 조항 :이 문서는 블로거 원본입니다은 허용 블로거없이 복제 할 수 없다. https://blog.csdn.net/baiyibin0530/article/details/90228650

>> (디폴트) 공간을 종료한다 문자열을 판독하여, 즉 단지 단어를 읽을 수있다.


포인터 문제

널 포인터 데이터 액세스 사용하지 마십시오 :
INT = nullptr ρ-을 *;
* ρ-= 7; // 나쁜


회문

회문 결과의 역방향 철자와 철자의 순서는 동일 워드이다.
안나 petep 말라얄람어 : 예를 들어,

: 단어가 회문 여부를 확인하는 방법은 두 가지가 있습니다
역순으로 단어의 철자의 사본을 얻을, 원래 단어와 비교가.
첫 번째 문자는 단어의 마지막 문자와 동일한 나타내며, 끝에서 두 번째 문자는 비교가 아래로 계속 동일로 다음 두 번째 문자를 결정
하면 단어의 중심에 도달 할 때까지.

회문을 달성하기 위해 문자열을 사용

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 [제] ;! false로의 S = [마지막]) 복귀
        우선 ++; 전진 //
        --last //이 후퇴
    }
    true로 복귀;
}

회문 포인터를 사용하여 구현
BOOL의 is_palindrome (첫 CONST 숯불 * const가 문자 * 성을)
{
 
    while 회 (첫 번째 <성)
    {
        ; false로 반환 (* = * 먼저 마지막) IF
        ++ 먼저, 전진 //
        --last ; // 후방으로 이동
    }
    true로 반환;
}

추천

출처blog.csdn.net/baiyibin0530/article/details/90228650