Mi è stato concesso 30 minuti per completare il seguente compito in un'intervista per un ruolo di sviluppatore C# entry level, il più vicino a cui potevo arrivare era scoprire se i caratteri su entrambi i lati dell'indice corrente corrispondevano l'un l'altro.Scopri se la sottostringa sinistra su (i) quando invertita, è uguale alla sottostringa corretta per (i)?
costruire una matrice che prende in una stringa e determina se dall'indice (i) la stringa di
fianco di (i) una volta invertito, è uguale alla stringa alla destra di (i).
esempio: "macchina da corsa"
a indice (3) la sottostringa sinistra è "rac", e quando invertito equivale a destra sottostringa "auto".
return (i) se soddisfatto di tale condizione, eslse return -1. se la lunghezza della stringa è inferiore a 3, restituisce 0;
if (str.Length < 3)
return -1;
for (int i = 0; i < str.Length - 1; i++)
{
if(str[i-1] == str [i+1])
return i;
}
return -1;
Si noti che anche se sembra funzionare, è altamente inefficiente, viene eseguito in tempo quadrica. – amit
puoi pubblicare la tua soluzione? –
@Tman: la soluzione di SaeedAmiri è simile a quello che ho in mente, non penso che postare una nuova risposta possa fornire ulteriori informazioni. – amit