C 언어 실현 블 루 브리지 컵 역대 시험 문제 정규 문제
5635 단어 블 루 브리지 컵
블 루 브리지 컵 시험 문제 풀이 링크
자원 제한
시간 제한: 1.0s 메모리 제한: 256.0MB
문제 설명
간단 한 정규 표현 식 을 고려 합 니 다. x () | 로 만 구 성 된 정규 표현 식 입 니 다.샤 오 밍 은 이 정규 표현 식 이 받 아들 일 수 있 는 가장 긴 문자열 의 길 이 를 구 하려 고 합 니 다.예 를 들 어 (xx | xxx) x | (x | xx) xx 가 받 아들 일 수 있 는 가장 긴 문자열 은 xxxxx 이 고 길 이 는 6 이다.
입력 형식
x () | 로 구 성 된 정규 표현 식입력 길이 가 100 을 초과 하지 않 아 합 법 을 보장 합 니 다.
출력 형식
이 정규 표현 식 이 받 아들 일 수 있 는 가장 긴 문자열 의 길이 입 니 다.
샘플 입력
((xx|xxx)x|(x|xx))xx
샘플 출력
6
데이터 규모 와 약정
( ) < 256M
CPU < 1000ms
비고
링크 를 참고 하여 이 사내 의 생각 을 사 용 했 지만, 그 가 쓴 코드 는 블 루 브리지 컵 과 어 울 리 지 않 는 것 같 았 다.재 귀 된 출구 가 어디 에 있 는 지 궁금 한 사람 이 있 을 수 있 습 니 다. 견본 예 를 들 어 읽 어 보 세 요. 괄호 내용 이 모두 끝 날 때 첫 번 째 dfs () 의 count + = dfs () 로 돌아 갑 니 다. 이때 count = 4;그리고 ch = '(getchat () 가 리 턴 을 문자 로 읽 을 때 까지 계속 순환 합 니 다) (이때 count = 6) 가 if 에 들 어가 면 else 문장 (비교 max 와 count) 이 최대 값 을 되 돌려 줍 니 다.
코드
#include
int dfs(){
char ch;
int max=0,count=0;// max count
while(1){
ch=getchar();//
if(ch=='x') count++;//
else if(ch=='|'){// | | 0
max=(max>count)?max:count;
count=0;
}else if(ch=='(') count+=dfs();// (
else{// ) ,
max=(max>count)?max:count;
printf("max=%d
",max);
return max;
}
}
}
int main(){
printf("%d",dfs());
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정규 표현 식 (python 3)정규 표현 식 은 문자 조작 에 대한 논리 적 공식 으로 미리 정 의 된 특정한 문자 와 특정한 문자 의 조합 으로 '규칙 문자열' 을 구성 하 는 것 입 니 다. match 는 문자열 의 시작 위치 에서 패턴 과 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.