Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int solve(char **a, int n) {
  2.   int i, shifted_i, flag = 0;
  3.   char *c;
  4.   char hash[ASCII_LEN];
  5.  
  6.   // Нулевая итерация
  7.   clean_string(hash, ASCII_LEN);
  8.   for (c = a[0]; *c; c++) {
  9.     hash[(int) *c] = 1;
  10.   }
  11.  
  12.   // Идем по массиву
  13.   for (i = 1, shifted_i = 0; i < n; i++) {
  14.     printf("-- %d\n", i);
  15.     // Проверяем совпадения букв через хеш таблицу
  16.     for (c = a[i]; *c; c++) {
  17.       if ((int)hash[(int) *c] == 1) {
  18.         printf("-- %d -- zhizha\n", i);
  19.         flag = 1;
  20.         break;
  21.       }
  22.     }
  23.  
  24.     // Заполняем хеш-таблицу текущего элемента, сначала чистя его
  25.     clean_string(hash, ASCII_LEN);
  26.     for (c = a[i]; *c; c++) {
  27.       hash[(int) *c] = 1;
  28.     }
  29.  
  30.     // Если буквы не совпадали (flag == 0), то никаких пертираний не будет
  31.     if (flag == 0) {
  32.       shifted_i++;
  33.       a[shifted_i] = a[i];
  34.     }
  35.  
  36.     // Готовим переменные к след итерации
  37.     flag = 0;
  38.   }
  39.   shifted_i++;
  40.   a[shifted_i] = a[i];
  41.  
  42.   return shifted_i;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement