2013-09-06 2 views
0

Quel est votre algorithme le plus simple pour trouver des caractères dupliqués?La solution la plus simple pour les chaînes dupliquées

string a = "school"; 
string b = "ofrock"; 

La sortie devrait être o, c (pas ooc). pouvez-vous trouver O (n) la complexité linéaire? Je ne peux pas

string a = "School"; 
string b = "ofRock"; 
string c = a + b; 
char[] cc = c.ToCharArray(); 

Dictionary<char, int> d = new Dictionary<char, int>(); 
Dictionary<char, int> l = new Dictionary<char, int>(); 

foreach (char ccc in cc) 
{ 
    try 
    { 
     d.Add(ccc, 1); 
    } 
    catch 
    { 
     try 
     { 
      l.Add(ccc, 1); 
     } 
     catch 
     { 
     } 
    } 
} 
+0

Que voulez-vous dire "trouver les chaînes en double"? –

+0

Si je comprends ce que vous essayez de faire, votre code vous donne ce que vous attendez. Quelle est votre question? – TheEvilPenguin

+0

Je pense que vous cherchez une liste de caractères qui apparaissent dans une chaîne plus d'une fois sans doublons. Pouvez-vous clarifier cela? – TheEvilPenguin

Répondre

3

L'approche simple, vous pouvez utiliser Intersect:

var result = a.Intersect(b); 
+1

Il n'est pas nécessaire d'appeler 'Distinct'. –

+0

@KirillPolishchuk: Vous avez raison –

+0

J'ai obtenu result = null. Ne fonctionne pas Je cherche en fait un algorithme plus simple que le mien. O (n) complexité –

Questions connexes