Найдите строку среди заданных строк, представленных с использованием заданного шаблона шифрования
Учитывая массив строк arr[] размера N и зашифрованную строку str , задача состоит в том, чтобы найти правильную строку из заданного массива строк, шифрование которых даст str , где str шифруется с использованием следующих правил:
- Начальные символы образуют целое число, представляющее количество символов верхнего регистра в расшифрованной строке.
- Следующие 3 символа — это последние 3 символа расшифрованной строки в обратном порядке.
- Последние несколько символов также образуют целое число, представляющее сумму всех цифр в пароле.
Длина каждой строки в массиве не менее 3, и если правильных ответов больше одного, выведите среди них.
Примеры:
Input: arr[] = {“P@sswORD1”, “PASS123word”}, str = “4dro6”
Output: PASS123word
Explanation: The decrypted string representing str = “4dro6” should have
4 upper case letters, sum of all digits in it as 6 and ends with “ord”.
The output string satisfies all the following properties.Input: arr[] = {“Geeks”, “code”, “Day&Night”}, str = “1thg10”
Output: -1
Explanation: No such string exists which satisfies the encryption.
Подход: Данная проблема представляет собой проблему, основанную на реализации, которую можно решить, выполнив следующие шаги:
- Сохраните целое число, представленное начальными цифрами, в целочисленном начале.
- Точно так же сохраните целое число, представленное последними цифрами, в конце целого числа.
- Сохраните и переверните строку в середине заданных двух целых чисел в строке mid.
- Перебрать все строки в заданном массиве arr[] и, если какая-либо из них удовлетворяет всем заданным трем условиям, вернуть соответствующую строку, в противном случае вернуть -1 .
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N * M), где M — максимальная длина строки массива.
Вспомогательное пространство: O(1)