Questa è una funzione molto semplice per trovare se una stringa è composta da caratteri univoci. Credo che questa sia una complessità di tempo O (n) mentre esegue il ciclo una volta e ha una condizione singola se. Ho ragione? Esiste un modo per ottimizzarlo ulteriormente?
public class Program
{
public static void Main(string[] args)
{
DuplicateChars(args[0].ToLower());
}
public static bool DuplicateChars(string str)
{
bool[] charfound = new bool[26];
int index = 0;
for(int i = 0; i <= str.Length ; ++i)
{
index = (byte)(str[i]);
//subtract by ascii value of small a 97.
index -= 97;
if(charfound[index])
return true;
else
charfound[index] = true;
}
return false;
}
}