Как определить K ^ -й символ в объединенной строке - PullRequest
0 голосов
/ 29 мая 2020

Дан список, содержащий N строк строчных английских sh алфавитов. Любое количество смежных строк может быть найдено вместе, чтобы сформировать новую строку. Функция группирования принимает два целых числа X и Y и объединяет все строки между индексами X и Y (включительно) и возвращает измененную строку. в котором сортируются алфавиты объединенной строки.

Вам задают Q вопросов, каждый из которых содержит два целых числа L и R . Определите $ K ^ {th} $. в объединенной строке, если мы передадим L и R функции группирования.

Формат ввода

  • Первая строка: N (количество строк в списке)
  • Следующие N строки: Строка $ S_i $
  • Следующая строка Q (число вопросов)
  • Следующие Q строки: три целых числа, разделенных пробелами L , R и K

Формат вывода

  • Для каждого вопроса выведите в новой строке символ $ K ^ {th} $ объединенной строки.

Пример Тестовые примеры

Sample Input                 Sample Output

5                                 c
aaaaa                             d
bbbbb                             e
ccccc
ddddd
eeeee
3
3 3 3 
1 5 16
3 5 15

Объяснение

  • Q1 Сгруппированная строка - ccccc. Третий символ - c
  • Q2 Сгруппированная строка - aaaaabbbcccccdddddeeeee . 16-й символ: d
  • Q3 Сгруппированная строка - cccccdddddeeeee . 15-й символ: e

Примечание: Всегда гарантируется, что позиция $ K ^ {th} $ действительна

КОНТЕКСТ:

Этот вопрос возник в ходе конкурса по найму, который я проводил в октябре. Я только что вспомнил этот вопрос и подумал, что у меня будет go, но я все еще борюсь с ним.

В Интернете нет работающих решений, поэтому я обращаюсь к этому веб-сайту в качестве последнего средства. Любая помощь будет принята с благодарностью. Спасибо!

1 Ответ

1 голос
/ 29 мая 2020

Как только вы поняли проблему, сам код становится простым. Здесь я продемонстрирую использование R.

Начнем с определения S , набора строк, который нам дан:

S <- letters[1:5]
S <- paste0(S, S, S, S, S)
S
#> [1] "aaaaa" "bbbbb" "ccccc" "ddddd" "eeeee"

Теперь мы можем объединить Lth в строку Rth вектора строк, Str очень легко, выполнив

concat <- function(Str, L, R) paste0(Str[L:R], collapse = "")

Так, например, если бы нам дали L = 1 и R = 2, мы могли бы сделать:

concat(S, 1, 2)
[1] "aaaaabbbbb"

Кроме того, мы можем найти символ в позиции K любой строки Str следующим образом:

char_at <- function(Str, K) substr(Str, K, K)

Итак, если мы объединим эти два, мы получим:

f <- function(L, R, K) char_at(concat(S, L, R), K)

Например:

# Q1
f(3, 3, 3)
#> [1] "c"

# Q2
f(1, 5, 16)
#> [1] "d"

# Q3
f(3, 5, 15)
#> [1] "e"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...