62(p84) 알고 있는 문자열의 가장 긴 공백 서열의 길이를 구합니다

962 단어
알 수 있는 문자열 중 가장 긴 공백 서열의 길이를 구하려면, 문자열의 문자를 최대한 적게 검사해야 합니다.알림: 스페이스 바 시퀀스 길이가 커지면 프로그램이 더 빨라집니다.
#include"stdio.h"
#define N 1000
void main()
{
int i = 0;
char a[N];
char tempchar;
int spaceCount = 0;
int spaceCountOld = 0;
int tempint = 0;
int cycleCount = 0;
memset(a,0, N * sizeof(char));
for (i = 0; i < N; ++i)
{
if ((tempchar = getchar()) == EOF) break;
a[i] = tempchar;
}
printf("
datasize = %d
",i); i = 0; while (i < N && a[i] != 0) { ++ cycleCount; if(a[i] != ' ') { tempint = spaceCount == 0 ? 1 : spaceCount; if (a[i + tempint] != ' ') i += tempint; else ++ i; if (spaceCount > spaceCountOld) { spaceCountOld = spaceCount; } spaceCount = 0; } else {++ spaceCount; ++ i;} } if (spaceCount > spaceCountOld) { spaceCountOld = spaceCount; } printf("
spaceCountOld = %d
", spaceCountOld); printf("\cycleCount = %d
", cycleCount); }

좋은 웹페이지 즐겨찾기