Suponha que existam muitas cadeias binárias
x <- c("0100100010101010", "0100110010101010","0111001000","010111")
Estou procurando um método rápido em R para gerar uma matriz contendo a substring comum mais longa em pares (excluindo autocorrespondências) desde o início . Por exemplo, uma solução poderia ser assim
> mySolution(x)
[,1] [,2] [,3] [,4]
[1,] "" "01001" "01" "010"
[2,] "01001" "" "01" "010"
[3,] "01" "01" "" "01"
[4,] "010" "010" "01" ""
Por exemplo, a matriz na posição [1,2] é a maior substring comum do início de x[1]
e x[2]
. Note que a matriz resultante é simétrica. Então, precisamos calcular apenas metade dela.
Eu sei que isso poderia funcionar com funções como substr,sub,grepl
, mas como tenho muitas strings, estou procurando uma solução muito eficiente que exija pouco tempo de computação. Talvez seja uma opção converter para números binários para melhorar o desempenho?