In questo tutorial scriveremo un programma Python per trovare la differenza tra le due stringhe fornite. Questo problema può essere posto nell'intervista. Comprendiamo l'affermazione del problema e poi ci avvicineremo alla soluzione.
Dichiarazione problema -
Vengono fornite due stringhe S E T. La stringa t viene generata mescolando casualmente la stringa s e quindi aggiunto un ulteriore carattere in qualsiasi posizione casuale. Dobbiamo scrivere un programma Python che restituisca la lettera aggiunta a T.
Esempio -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Esempio -
cos'è l'hashset Java
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Vincoli:
stringa su int in Java
Dovrebbero essere seguiti i seguenti vincoli:
- 0<= s.length <='1000</li'>
- t.lunghezza == s.lunghezza + 1
- s e t sono costituiti da lettere inglesi minuscole. =>
Programma Python
Comprendiamo il seguente programma Python.
Esempio -
class Solution(object): def findTheDifference(self, s, t): ls_s = [s[i] for i in range(len(s))] ls_t = [t[i] for i in range(len(t))] for elem in ls_s: ls_t.remove(elem) return(ls_t[0]) obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Produzione:
'e'
Spiegazione -
Nel codice precedente, abbiamo definito la funzione findThedifference() che accetta due stringhe come argomenti. Abbiamo utilizzato la comprensione delle liste per convertire le stringhe in list. Ora iteriamo ls_s list, scegli un singolo elemento e rimuovi quell'elemento nel secondo elenco ls_t. Se tutti gli elementi vengono rimossi dal secondo elemento, significa che entrambe le stringhe fornite sono uguali, altrimenti restituisce il primo elemento della seconda lista.
Soluzione - 2
come convertire una stringa in carattere
Vediamo un'altra soluzione del problema.
stringa di input Java
class Solution: def findTheDifference(self, s: str, t: str) -> str: #sort both the strings s_list = sorted(s) t_list = sorted(t) s_list.append(0) #to make the length equal else we will get list index out of bounds (1 extra char in string2) for i in range(len(t_list)): if s_list[i] != t_list[i]: #if character at i not same for both the strings, we get our answer return t_list[i] obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Produzione:
e
Spiegazione -
In questo tutorial abbiamo utilizzato il file smistato() metodo, che converte la stringa in un elenco di caratteri in modo ordinato. Abbiamo creato i due elenchi di stringhe e aggiunto un elemento aggiuntivo come 0 per rendere uguale la lunghezza; altrimenti, otterremo l'indice dell'elenco fuori dai limiti. Ora abbiamo ripetuto t_list e verificato se il file s_list l'elemento non è uguale a t_list; se la condizione è soddisfatta, restituisce quell'elemento.