--9Palindrome Number10Regular 표현을 일치 다섯째 날 식을 일치 질문을 브러시 LeetCode 행복

처음 역방향 첨가 직접적인 비교를위한 제 회문 번호 쉬운 홍수 칭호는 동일하지만, 그 범위는 -2147483647-2147483648 즉 INT가 입력되어 있지만 역방향 반드시 없다 INT INT 범위, 메모리 어레이로의 전환을 초과 이탈리아 자체가 문자열로 수행하는 int 사용하는 우리에게 원하는 것을 느끼고, 배열을 통한 방법과는 전후 비교하지만, 문제를 해당 패리티가있을 것입니다, 그래서 횟수를 계산 플러스. emmm하고 그래서 다음에 내가 본 후까지 합, 하, 하, 하. .

쉬운
14581309FavoriteShare

정수가 회문 여부를 결정합니다. 그것이 순방향 동일한 역방향 읽을 때 정수 회문이다.

예 1 :

입력 : (121) 
출력 : 사실

예 2 :

입력 : -121 
출력 : 거짓 
설명 : 왼쪽에서 오른쪽으로, 그것은 -121을 읽습니다. 오른쪽에서 왼쪽으로, 그것은 121가된다. 따라서이 회문 없습니다.

예 3 :

입력 : 10 
출력 : 거짓 
설명 : 오른쪽에서 왼쪽으로 01 읽습니다. 따라서이 회문 없습니다.
클래스 해결 {
 공개 :
     BOOL isPalindrome ( INT (X)) {
         경우 (X < 0 ) 돌려  거짓 ;
        INT의 온도 [ 11 ] = { 0 }, I = 0 , 없음 = 0 ;
        부울 인 flag1 = 0 ;
        반면 (X! = 0 ) 
        { 
            온도 [I ++] = X % 10 ; 
            X / = 10 ; 
        } 
        // 내가就是次数
         //COUT << I << ENDL; 
        경우 (I % 2 == 1 ) 
        { 
            없음 = (I- 1 ) / 2 ; 
            인 flag1 = 1 ; 
        } 

         ( INT의 t = 0 ; t <I; t ++ ) 
        { 
            경우 (t == 없음)
                 계속 ;
            만약 (! 온도 [t] = 온도는 [I-는 1 - t])
                 반환  거짓 ; 
        } 
        반환  사실 ; 
    } 
};

 

1. 기능 :

C ++ : 문자열 클래스, SUBSTR (2) 처음 두 이외의 촬영. SUBSTR (2,5)는 2 내지 5로 이동.

 

주제 :

10. 정규 표현식 매칭

 

입력 문자열 (감안 s) 및 패턴 ( p)을 지원 일치 정규식 구현  '.' 및  '*'.

 

'.' 단일 문자와 일치합니다. 
'*'이전 요소의 0 개 이상의 일치.

 

매칭 전체 입력 문자열 (일부 생략)를 포함한다.

 

노트 :

 

  • s 비어와 소문자가 포함되어 있었다  a-z.
  • p 비어와 소문자 포함 할 수  a-z와 같은 문자  . 또는  *.

 

예 1 :

 

입력 : 
S = "AA" 
P = "A" 
출력 : 거짓 
설명 : "A"전체 문자열 "AA"를 일치하지 않습니다.

 

예 2 :

 

입력 : 
S = "AA" 
p = "A *" 
출력 : 참 
설명 : '*'는 제로 또는 precedeng 소자, 'A'이상을 의미한다. 따라서, 반복하여 A는 한 번, 그것은 "AA"가된다.

 

예 3 :

 

입력 : 
S = "AB" 
". *"p = 
출력 : 참 
설명 ". *", "0 개 이상의 문자 (*)를 (.)"를 의미한다.

 

예 4 :

 

입력 : 
S = "AAB" 
p = "C * A * B를" 
출력 : 참 
설명 : C는 0 번 반복 수는 1 회 반복 될 수있다. 그러므로 "AAB"를 일치합니다.

 

예 5 :

 

INPUT : 
S = "미시시피" 
P = "MIS * P *이다." 
출력 : false로 

인용 제목 :
일본어 정합 문자열 S P. * 전 대표 문자는 0 또는 1이 될 수 있습니다. 대표는 모든 문자가 될 수
가 일치하는지 확인하기 위해 두 개의 문자열을 주어진
생각을 :
하나 하나 앞에서 경기를 발견했을 때 결정하는 재귀 일치 여부, 하나의 기능을 결정하기 위해, 다시, 삭제 앞을 넣어, 다음 함수에 전달.
해상도 코드 :
사용법 #include <iostream> 
사용법 #include <math.h> 
사용법 #include <지도> 
사용법 #include < 문자열 > 
사용법 #include < 문자열 .H> 
사용법 #include <stdio.h에> 
사용법 #include <cstdlib>
 은 Using  네임 스페이스 STD;
 클래스 솔루션 
{ 
공개 :
     BOOL IsMatch ( 문자열 S, 문자열 P)는 
    { 
        // 세 가지 경우가 설명이 글자와 매칭 힌트의 차이 * 간섭. 정상
         // 판정 빈 케이스하지만, 상기 다음의 경우 이것은 빈 (P)의 경우이고, 계정에 공간 (S)을 복용 할 수있다 
        IF (p.empty ())
             복귀 s.empty ();
        // p는뿐만 아니라 문자, 거기 뒤에 * P, P 무제한 또는 여러 번 할 수 없습니다 현재 첫 번째 문자를 보여
         // 두 분류 넣어 처음 두 P의가 아닌 경우, 반환 아래의 설명을 재활용은, 그렇지 않으면, 제 1 비교기는, 동일한에서 제거되는 제거의 제 1 비교 계속 
        만약에 (P.SIZE ()> . (1) && P의 [이 . 1 ] == ' * ' )
             반환 (IsMatch (S, p.substr을 2 )) || (s.empty () && (S [! 0 == P [] 0 ] || P [ 0 ] == ' . ' ) && IsMatch (s.substr ( 1이다. ), P))
         다른 
            //는 설명이 발생할 수 있습니다 위의 경우. 또는 문자가 아닌,하지만 최초이자 유일한 모양을 고려
             // 두 가지를 고려,하지만 지금은이 경우를 제외 전에 *
             // 그래서 우리는 공기가 여부를 판단 제거한 후 현재의 경기, 경기를 관람
            반환 ! s.empty을 () && (S [ 0 ] == P [ 0 ] || P [ 0 ] == ' . ' ) && isMatch (s.substr ( 1 ) p.substr ( 1 )); 

    } 
}; 
INT 의 main () 
{ 
    INT N = 100 ;
    부울 플래그 = 거짓 ;
    문자열 S1 = " abbcde ' , S2 = ' A *의 BCD. " ; 
    솔루션의; 
    플래그 = s.isMatch (S1, S2); 
    COUT << 플래그 << ENDL;
    반환 0 ; 
}

 

 

 

HTTPS : //www.cnblogs.com/Marigolci/p/11039087.html 재현

추천

출처blog.csdn.net/weixin_33885676/article/details/93369891