Untitled

 avatar
unknown
plain_text
2 years ago
1.8 kB
2
Indexable
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <string.h>
#define max(x, y) x > y? x: y

int count(char* buffer) {
    for (int i = 0; i < strlen(buffer); i++) {
        if (buffer[i] == '\n') {
            buffer[i] = ' ';
        }
    }
    int wasLetter = 0;
    int n = 0;
    for (int i = 0; i < strlen(buffer); i++) {
        if (buffer[i] != ' ') {
            wasLetter = 1;
        } else {
            if (wasLetter == 1) {
                n++;
                wasLetter = 0;
            }
        }
    }
    char** words = (char**)(malloc(sizeof(char**) * n));
    int last = 0;
    int id = 0;
    for (int i = 1; i < strlen(buffer); i++) {
        if (buffer[i] == ' ') {
            char* s = (char*)(malloc(sizeof(char*) * (i - last - 1)));
            words[id] = (char*)(malloc(sizeof(char*) * (i - last - 1)));
            int l = 0;
            for (int j = last + 1; j < i; j++) {
                s[l++] = buffer[j];
            }
            if (strcmp(s, "") != 0) {
                strcpy(words[id], s);
                id++;
            }
            last = i;
        }
    }
    // printf("\n");
    // for (int i = 0; i < n; i++) {
    //     printf("\'%s\'\n", words[i]);
    // }
    int mx = 0;
    for (int i = 0; i < n; i++) {
        int counter = 0;
        for (int j = 0; j < n; j++) {
            if (strcmp(words[i], words[j]) == 0) {
                counter++;
            }
        }
        mx = max(mx, counter);
    }
    return mx;
}

int main() {
    char* buffer = (char*)(malloc(sizeof(char*) * 202));
    int l = 0;
    buffer[l++] = ' ';
    char c;
    while ((c = getchar()) != EOF) {
        buffer[l++] = c;
    }
    buffer[l++] = ' ';
    // printf("%s", buffer);
    printf("%d", count(buffer));
    return 0;
}
Editor is loading...