1 / 1 / 1
Регистрация: 26.11.2011
Сообщений: 33
|
||||||
1 | ||||||
Вывести все слова, в которых есть буква "a"29.11.2011, 17:37. Показов 10861. Ответов 69
Метки нет (Все метки)
не могу найти ошибку
Добавлено через 2 часа 30 минут помогите пожалуйста...
0
|
29.11.2011, 17:37 | |
Ответы с готовыми решениями:
69
Найти все и вывести все слова в которых есть буква "к" Вывести слова из предложения, в которых есть буква, встречающийся четыре и более раз Вывести на экран все слова из К букв, в которых буква Ы встречается более 1 раза, и подсчитать их количество Рекурсия. Вывести на экран все слова из k букв, в которых буква Ы встречается больше 1 раза и посчитать их кол-во. |
29.11.2011, 21:23 | 41 |
fasked, хорошо, по-другому, в посте 39 приведен пример использования strchr, но пример как не эффективно использовать эту функцию. Вы же не привели свой алгоритм решения задачи с set и s
0
|
29.11.2011, 21:38 | 44 |
alkagolik, моя вина, что не сказал, что set - множество символов, то есть там нет одинаковых символов.
Добавлено через 1 минуту fasked, сложность вашего алгоритма O(mn), где m = strlen(set), n = strlen(s)
0
|
29.11.2011, 21:42 | 49 |
set это строка без повторяющихся символов, s - произвольная строка. Требуется подсчитать количество символов из строки s, содержащихся в set. Например, set = "123". s = "321abc11". Ответ 5
0
|
29.11.2011, 21:47 | 51 |
Нет, я же придумал задачу У нас вопрос не сколько различных символов из s принадлежит set (это другая задача, тоже интересная), а сколько в строке s символов, которые принадлежат set, например, усли set="01...9", то мы считаем количество цифр в строке и т.д.
0
|
Заблокирован
|
|
29.11.2011, 21:57 | 54 |
Код
deadman@gnomik:~$ cat file.c #include <stdio.h> int f(char *s, char x) { int a = 0; while (*s) { if ( *s == x) ++a; ++s; } return a; } int main(void) { char *s = "321abc1122"; // 9 char *set = "123"; int count = 0; while(*set) { count += f(s, *set); ++set; } printf("%i\n", count); return 0; }deadman@gnomik:~$ gcc file.c deadman@gnomik:~$ ./a.out 7 deadman@gnomik:~$
0
|
29.11.2011, 21:57 | 55 | |||||
Thinker, мы говорим о символах в сферическом вакууме или символах char? Если про char, то можно предложить отсортировать строку set, и уже далее использовать бинарный поиск. Получится O(lg(n) * m).
0
|
29.11.2011, 23:45 | 58 |
Как вариант упаковывать все по 4 или 8 байт, что уменьшит сложность в 8 или 4 раза, но это опять же константа и брать ее во внимание неразумно.
Строка set очень коротка, поэтому сортировка пройдет почти незаметно. Впрочем, бинарный поиск по ней тоже не сильно будет отличаться от линейного.
0
|
30.11.2011, 00:55 | 60 |
В общем-то формировать из 4 символов один int. Потом как-нибудь хитро это "заксорить" с искомым символом и проверить на наличие нулей. Я думаю, что в strchr именно так и сделано, но разбираться, если честно, лень Это прибавит скорости машинной, но не алгоритмической. Поэтому неинтересно.
0
|
30.11.2011, 00:55 | |
30.11.2011, 00:55 | |
Помогаю со студенческими работами здесь
60
Что здесь неправильно? (Вывести все слова строки в которых первая буква входит в него ещё раз) Даны буква и текст заканчивающийся точкой. Вывести слова в которых эта буква встречается наибольшее количество раз Вывести все слова, в которых первая буква "а" Вывести все слова строки, в которых есть удвоение букв Вывести на печать все слова, у которых есть двойные буквы Напечатать все слова, в которых повторяется первая буква слова Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |