Использование strsplit
разделить строки, используя пробел в качестве разделителя, а затем использовать unique
с 'stable'
флагом, чтобы мы удалить дубликаты и обеспечение уникальных строк находятся в одном порядке. Это удаляет повторяющиеся строки, но не строки, которые содержат один и тот же символ. Для этого мы проверим каждую строку и проверим, соответствует ли разница между последовательными символами равным 0. Мы используем diff
для каждой строки в сочетании с all
, чтобы сделать это для нас. Если все последующие различия равны 0, мы отфильтровываем их из разделенных строк. После того, как мы используем strjoin
присоединиться все строки обратно:
%// Input string
s = 'DA EA DA BD FA ED GE AA CA BB CC FB BC CB CF';
%// Split string up into cells based on spaces
st = strsplit(s, ' ');
%// Filter out duplicate strings
st = unique(st, 'stable');
%// Find split strings that all have the same characters
f = cellfun(@(x) all(diff(x) == 0), st);
%// Remove from the list
st2 = st(~f);
%// Join the remaining strings back
sf = strjoin(st2, ' ');
sf
является конечный результат. В этом случае мы получаем:
sf =
DA EA BD FA ED GE CA FB BC CB CF
Хорошая вещь о выше подхода состоит в том, что строки в между пространствами может быть любого размера - это не должно быть только два символа в строке.