Например a = 5, b = 6 и тд. на каждый символ свой код (в примере числовой)
Я решила использовать для этого Хеш таблицу. Изначально в нее запишу все коды для букв = {a = 5, b = 6 и тд}
Что быстрее отработает на огромном тексте (война и мир) и что будет оптимальнее по памяти :
1) забить Хеш таблицу с символами разного регистра. Например a = 5, A = 5, b = 6, B = 6. итого ключей = кол-во букв * 2. И сопоставлять посимвольно ключ-значение
2) или при посимвольном прохождении использовать метод toLower и забить в хеш таблицу только маленькие буквы? тогда ключей будет = кол-во букв
Сравнила время, работают два способа одинаково. Но что лучше по потреблению памяти - Хеш с большим кол-вом ключей или Хеш + toLower.
Логично предположить, что мапа займет больше места, но ты проверь
А как проверить потребление памяти в qt? Есть простые способы ?
может просто массив(вектор) или std::array ибо все известно сколько и чего... зачем считать хэш, если мы и так знаем что A==5. может ее и поместить в 5-ый индекс руками? будет сложность поиска O(1)
Обратное преобразование элементарно, но тут задача - из "а" получить 5
Обсуждают сегодня