Преобразование текстового номера телефона в 10-значный числовой номер
Дана строка S размера N , содержащая строчные латинские буквы, представляющая номер телефона (все номера телефонов будут 10 цифр) словами, задача состоит в том, чтобы преобразовать число в цифры. Повторяющиеся цифры можно сократить следующим образом:
- Если какая-либо цифра повторяется два раза, то прописью записывается как «двойная» .
- Если какая-либо цифра повторяется трижды, то прописью записывается как «тройной» .
- Если какая-либо цифра повторяется четыре раза, то прописью пишется «четверка» .
- Если какая-либо цифра повторяется пять раз, то прописью пишется «пента» .
- Если какая-либо цифра повторяется шесть раз, то в словах записывается как «гекса» .
- Если какая-либо цифра повторяется семь раз, то прописью пишется «гепта» .
- Если какая-либо цифра повторяется восемь раз, то прописью записывается как «окта» .
- Если какая-либо цифра повторяется девять раз, то прописью пишется «нона» .
- Если какая-либо цифра повторяется десять раз, то прописью пишется как «дека» .
Примеры:
Input: “five eight quad two four triple eight”
Output: “5822224888”
Explanation: Here is one 5, one 8, four 2, one 4, and three 8.Input: “five one zero two four eight zero double three two”
Output: “5102480332”Input: “five one zero six triple eight nine six four”
Output: “5106888964”Input: “five eight double two double two four eight five six”
Output: “5822224856”
Подход: это проблема, основанная на реализации, которая может быть решена на основе следующей идеи:
Consider each word as a substring. if that is of the type which represents a repetition, then repeat the next digit that many times. Otherwise, convert that word to the corresponding digit. Follow the same for all the words and form the number.
Для реализации идеи выполните следующие шаги:
- Создайте временную строку (скажем, resum ) для хранения числа.
- Подбери каждое слово:
- Если слово относится к типам повторения, т. е. « двойной », « тройной », « квадрат », « пента », « гекса », « гепта », « окта », « нона » и « дека », преобразуйте их в его целочисленную форму и представить это как частоту следующей цифры.
- В противном случае преобразуйте слово в соответствующую цифру и повторите (если перед этим упоминается какой-либо термин повторения) и добавьте это к resnum .
- .Вернуть resnum как окончательный ответ.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N)
Вспомогательное пространство: O(N)