Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Варианты к задаче 3 (строки).
- 1. Есть строка, имеющая вид "par1 = val1, par2 = val2, par3 = val3"
- Нужно разбить ее на отдельные пары, а затем, разделив имена и значения,
- сохранить их в два массива (keys and values),
- после чего вывести их в виде:
- par1 -> val1
- par2 -> val2
- Разделитель между парами --- запятая. Внутри пары --- "=".
- Пробелы нужно игнорировать. Если ключ или значение отсутствует, то следует брать пустую строку.
- Рекомендую реализовать в виде функции, которая приниает строку,
- указатели на два массива для вывод результатов,
- а возвращает длину результата (количество пар).
- Можно использовать встроенную функцию strtok, впрочем, необязательно.
- 2. Написать функцию, подсчитывающую количество различных триплетов (подстрок длины 3) в строке. Например,
- "AAAABBBB" -> 4
- "ABCSEFG" -> 5
- Можно использовать встроенную функцию strtok, впрочем, необязательно.
- 3. Строка состоит из слов, разделенных пробелами. Посчитать количество различных слов в строке.
- "mama papa mama lama" -> 3
- Можно использовать встроенную функцию strtok, впрочем, необязательно.
- 4. На вход передается строка в виде CamelCase (т.е. все слова внутри написаны слитно,
- каждое новое с большой буквы). Нужно преобразовать ее в формат C-style, где все слова напиcаны
- с маленькой буквы через подчеркивание (CamelCase -> camel_case).
- Рекомендую реализовать как функцию, принимающую строку и указатель char*, по указателю вывести новую строку, а возвращает пусть функция длину строки-результата.
- 5. На входе строка, содержащая слова, разделенные пробелами. Преобразовать ее в массив отдельных слов.
- Пустые слова не учитывать (т.е. два пробела подряд считать одним).
- Рекомендую реализовать как функцию, принимающую строку и указатель на массив. Пусть эта функция возвращает количество отдельных слов, а в массив складывает распознанные слова.
- 6. На вход передается строка в виде C-style (т.е. все слова внутри написаны через подчеркивание,
- маленькими буквами). Нужно преобразовать ее в формат CamelCase, где все слова внутри написаны слитно,
- каждое новое с большой буквы.
- Рекомендую реализовать как функцию, принимающую строку и указатель char*, по указателю вывести новую строку, а возвращает пусть функция длину строки-результата.
- 7. На вход передаются две строки: основная строка и подстрока для поиска. Подсчитать количество различных вхождений подстроки в строку. ("ABBAKARABBAAB", "AB") -> 3
- 8. Дана строка. Рассмотрим все возможные строки, образованные циклической перестановкой символов в данной строке, например, для строки "CABB":
- CABB
- ABBC
- BBCA
- BCAB
- Среди всех таких строк найти лексикографически наименьшую. В качестве ответа вернуть номер начального символа новой строки в исходной, считая, разумеется, от нуля. "CABB" -> 1
- 9. "RLE-кодирование". Дана строка, состоящая из латинских букв. Функция должна возвращать строку, полученную из исходной заменой всех последовательностей одинаковых букв, идущих подряд, на сочетание вида "###*", где * --- повторяющаяся буква, а ### --- количество повторений.
- "aaabccd" -> "3ab2cd"
- 10. "RLE-декодирование". Задача, обратная предыдущей.
- "3ab2cd" -> "aaabccd"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement