2018 년 전국 다 교 알고리즘 겨울방학 훈련소 연습 경기 (2 차 전) A 거품 뱉 기
제목 설명 작은 물고기 가 거품 을 내 뿜 고 뚜뚜 튀 어 나온다.작은 물고 기 는 두 가지 거품 을 토한다. 큰 거품 'O', 작은 거품 'o'.두 개의 인접 한 작은 거품 은 하나의 큰 거품 으로 녹 고, 두 개의 인접 한 큰 거품 은 터 질 것 이다.(네, 잘못 보지 않 았 습 니 다. 작은 기포 와 큰 기포 가 변 하지 않 습 니 다. 그 이 유 는 저도 잘 모 르 겠 습 니 다.) 예 를 들 어 ooOOOOOOOOO 는 시간 이 지나 면 oO 가 됩 니 다.
입력 설명: 데이터 가 여러 그룹 으로 파일 이 끝 날 때 까지 처 리 됩 니 다.각 그룹 은 'O' 와 'o' 로 구 성 된 문자열 을 입력 합 니 다.
출력 설명: 각 그룹의 출력 은 한 줄 만 포함 하고, 한 줄 의 문자열 은 작은 물고기 가 뱉 은 거품 이 융합 된 후에 남 은 거품 을 나타 낸다.
예시 1 입력 ooOOOOOOO 출력 oO
왼쪽 에서 오른쪽으로 합병 하 는 것 을 설명 합 니 다.
비고: 100% 데이터 에 대해 문자열 의 길 이 는 100 을 초과 하지 않 습 니 다.
코드:
#include
#include
#include
#include
using namespace std;
char s[101];
void printS(char* s,int len){
for(int i=0;iprintf("%c",s[i]);
}
printf("
");
}
int main(void){
while(scanf("%s",s)!=EOF){
for(int i=0;i<strlen(s);i++){
if(s[i]=='o'){
int j=i;
while(s[j+1]=='x'){
j++;
}
if(s[j+1]=='o'){
s[i]='x';
s[j+1]='O';
i=-1;
//printS(s,strlen(s));
continue;
}
}
if(s[i]=='O'){
int j=i;
while(s[j+1]=='x'){
j++;
}
if(s[j+1]=='O'){
s[i]='x';
s[j+1]='x';
i=-1;
//printS(s,strlen(s));
continue;
}
}
else{
continue;
}
}
for(int i=0;i<strlen(s);i++){
if(s[i]!='x'){
printf("%c",s[i]);
}
}
printf("
");
}
return 0;
}
생각 은 거품 의 합병 과 폭발 에 따라 한 번 시 뮬 레이 션 하 는 것 입 니 다. 문자열 도 크 지 않 기 때 문 입 니 다. 그리고 합병 하거나 폭발 한 후에 남 은 구 덩이 는 x 문자 로 대체 합 니 다. 배열 을 이동 하지 않 아 도 됩 니 다. 그리고 매번 조작 이 발생 한 후에 i 리 셋 을 다시 한 번 옮 겨 다 닐 수 있 습 니 다. 여 기 는 처음부터 리 셋 하지 않 아 도 됩 니 다. 그리고 마지막 으로 구 덩이 를 말 할 수 있 습 니 다.O 와 0 이 아니 라 o 와 O... 나 는 왜 문 제 를 보 자마자 0 이 라 고 생각 하지...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
검 지 offer 문자열 의 배열 (전체 배열 역 추적, DFS)묘사 하 다. 문자열 을 입력 하고 이 문자열 의 모든 배열 을 사전 순서에 따라 출력 하 십시오.예 를 들 어 문자열 abc 를 입력 하면 문자 a, b, c 가 배열 할 수 있 는 모든 문자열 abc, acb, ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.