Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int solve(char **a, int n) {
- int i, shifted_i, flag = 0;
- char *c;
- char hash[ASCII_LEN];
- // Нулевая итерация
- clean_string(hash, ASCII_LEN);
- for (c = a[0]; *c; c++) {
- hash[(int) *c] = 1;
- }
- // Идем по массиву
- for (i = 1, shifted_i = 0; i < n; i++) {
- printf("-- %d\n", i);
- // Проверяем совпадения букв через хеш таблицу
- for (c = a[i]; *c; c++) {
- if ((int)hash[(int) *c] == 1) {
- printf("-- %d -- zhizha\n", i);
- flag = 1;
- break;
- }
- }
- // Заполняем хеш-таблицу текущего элемента, сначала чистя его
- clean_string(hash, ASCII_LEN);
- for (c = a[i]; *c; c++) {
- hash[(int) *c] = 1;
- }
- // Если буквы не совпадали (flag == 0), то никаких пертираний не будет
- if (flag == 0) {
- shifted_i++;
- a[shifted_i] = a[i];
- }
- // Готовим переменные к след итерации
- flag = 0;
- }
- shifted_i++;
- a[shifted_i] = a[i];
- return shifted_i;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement