Untitled
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...