Это хорошо для первого подхода, но вы можете сделать несколько улучшений, и есть небольшая ошибка.
- Если
b
содержит символ в a
, который уже находится в c
, вы повторите его.
- Чтобы избежать повторений, вы можете использовать
Set
для хранения символов, поскольку Set
не будет иметь повторов.
- Сборка строк с конкатенацией
+=
обычно неэффективна; рассмотрите возможность использования StringBuilder
или аналогичного класса сборки строк.
- Ваши имена переменных не очень наглядны.
- Если
a
или b
пусты, вам вообще не нужно ничего делать! Просто верните пустую строку.
Вы также можете подумать о некоторых более сложных улучшениях, представив, как масштабируется ваш алгоритм, если вы начали использовать огромные строки. Например, одним из подходов может быть то, что если одна строка намного длиннее другой, вы можете отсортировать более длинную и удалить дубликаты. Затем вы можете очень быстро выполнить двоичный поиск по символам более короткой строки.