получить список первых 26 простых чисел ..
Теперь вы можете отобразить каждый символ (a, b, c, d и т. Д.) На каждое простое число .. (в алфавитном порядке сказать a = 2, b = 3, c = 5 и т. Д.) Или в зависимости от относительного обилия символов, как чаще всего использованная буква с меньшим простым числом, скажем, e = 2, r = 3, a = 5 и т. д.) ... сохранить это отображение в целочисленном массиве
int prime [26] ..
перебрать все символы строки
i=0;
int product = 1;
while(char[i] != null){
if(product % prime[i] == 0)
the character is already present delete it
else
product = product*prime[i];
}
этот алгоритм будет работать за O (n) времени .. с O (1) пространством
Это будет хорошо работать, когда число отдельных символов меньше в строке ... другой мудрый продукт превысит диапазон "int", и мы должны правильно обработать этот случай