[데이터 구조] 비극 텍스트 (링크)
14171 단어 고급 프로 그래 밍
질문 설명:
너 는 파 손 된 키 보드 를 가지 고 있다.키보드 의 모든 키 는 정상적으로 작 동 할 수 있 지만, 때로는 홈 키 나 엔 드 키 가
누르다키보드 에 이런 문제 가 있다 는 것 을 모 르 고 영어 단 어 를 열심히 입력 해 모니터 도 보지 않 았 다.그대
모니터 를 볼 때 당신 앞 에 펼 쳐 진 것 은 비 극적인 텍스트 입 니 다.너의 임 무 는 이 텍스트 에 몇 개의 단어 가 있 는 지 계산 하 는 것 이다.
여러 그룹 을 포함 하 는 데 이 터 를 입력 하 십시오.각 그룹의 데 이 터 는 한 줄 을 차지 하고 20000 개의 영문 자모, 빈 칸, 문자 '[' 또는 '
자 "]" (20000 글자 에 달 하 는 데 이 터 는 한 줄 에 표 시 됩 니 다. 줄 이 바 뀔 염려 는 없습니다.)그 중에서 문자 '[' 는 홈 키 (커서 를 한 줄 의 시작 으로 지정) 를 나타 내 고 ']' 는 End 키 (커서 를 한 줄 의 끝 으로 지정) 를 나타 낸다.파일 끝 표시 줄 (EOF) 을 입력 하 십시오.지다
텍스트 입력 은 50kB 를 초과 하지 않 습 니 다.
각 그룹의 데이터 에 대해 하나의 숫자 를 출력 합 니 다. 즉, 이 비극 적 텍스트 에는 모두 몇 개의 단어 가 있 습 니 다 (빈 칸 으로 구 분 된 연속 문자열 을 하나의 단어 로 합 니 다).
예 를 들 어 입력:
This is a [Beiju] text
얻 은 비극 적 텍스트 는:
BeijuThis is a text
그래서 모두 4 개의 단어 가 있다.
입력:
This[ ]is[ ]a [Beiju] text
얻 은 비극 적 텍스트 는:
Beiju Thisisa text
그래서 모두 3 개의 단어 가 있다.
이 프로그램 은 앞장 서 는 노드 의 단일 체인 시트 로 이 루어 집 니 다. 그 중의 count 함 수 를 작성 하여 단어의 개 수 를 통계 하 는 기능 을 실현 하 십시오.프로그램 이 시간 을 초과 할 수 있 도록 배열 을 사용 하지 마 십시오.
입력 설명:
여러 개의 텍스트 를 입력 할 수 있 습 니 다. 각 그룹 은 영문 자모 로 구 성 된 단어, 빈 칸, [,] 를 포함 합 니 다.
출력 설명:
단어 수 를 위 한 정 수 를 출력 합 니 다.
범례 입력:
This is a [Beiju] text This [] is [] a [Beiju] text 출력 범례:
4 3
#include
#include
#include
#include
#include
using namespace std;
struct node
{
char data;
struct node *next;
};
struct node* create(char text[])
{
int i;
struct node *current;//
struct node *tail;//
struct node *head;//
head = (struct node*)malloc(sizeof(struct node));//
head->next = NULL;
current = head;//
tail = head;//
for(i=0; i<strlen(text); i++)
{
if(text[i] == '[')
{//
current = head;
}
else if (text[i] == ']')
{//
current = tail;
}
else
{//
struct node *p;
p = (struct node*)malloc(sizeof(struct node));
p->data = text[i];
p->next = current->next;
current->next = p;
current = p;
if(current->next == NULL) tail = current; // , tail
}
}
return head;
}
int count(struct node *head)
{
// ,
int flag=0;//
struct node *p;
p=head->next;
int sum=0;
while(p!=NULL){
if(flag==0 && p->data!=' '){
sum++;
flag=1;
}
if(flag==1 && p->data==' '){
flag=0;
}
p=p->next;
}
return sum;
// , ,
}
int main()
{
//freopen("input2.txt","r",stdin);
//freopen("output2.txt", "w", stdout);
char text[100005];
struct node *head,*p;
int num;
while(gets(text)!=NULL)
{
head=create(text);
//for(p=head->next; p!=NULL; p=p->next)
// printf("%c",p->data);
//printf("
");
num=count(head);
printf("%d
",num);
}
//printf("%.2f
", (double)clock()/CLOCKS_PER_SEC);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
가장 자세 한 자 바스 크 립 트 고급 튜 토리 얼 (15) 대상 의 속성ES 대상 에 대한 정 의 는 무질서 한 속성의 집합 으로 그 속성 은 기본 값, 대상 또는 함 수 를 포함 할 수 있다.그 중에서 우 리 는 js 중의 대상 이 아래 의 특징 을 가지 고 있다 는 것 을 발견 할 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.