String com número máximo de caracteres únicos

Dado um array de strings, a tarefa é imprimir a string com o número máximo de personagens únicos.

Observação:

  • Strings consistem em caracteres minúsculos.
  • Se existirem várias strings, imprima qualquer uma delas.

Exemplos:  

Entrada: arr[] = ['abc' 'geeksforgeeks' 'gfg' 'código']
Saída: "geeks para nerds" 
Explicação: 'abc' tem 3 caracteres únicos 'geeksforgeeks' tem 7 caracteres únicos
'gfg' possui 3 caracteres únicos. 'código' possui 4 caracteres únicos.

Entrada: arr[] = ['olá' 'mundo' 'programação' 'zebra']
Saída: 'programação' 
Explicação: 'programação' possui 8 caracteres únicos, que é o máximo.

Abordagem:

A ideia é examinar sistematicamente cada string, rastreando quais letras minúsculas aparecem nela, usando uma matriz booleana contando esses caracteres únicos e controlando qual string produziu a contagem mais alta até o momento.

Abordagem passo a passo:

  1. Itere em cada string da coleção.
  2. Para cada string use um array booleano para marcar quais letras estão presentes.
  3. Conte quantas letras distintas foram marcadas como presentes.
  4. Se esta contagem exceder o máximo anterior, atualize o máximo e lembre-se da posição desta string.
  5. Retorne a string com o maior número de caracteres únicos encontrados.
C++
   // C++ code to find string with maximum   // number of unique characters.   #include          using     namespace     std  ;   // Function to find string with    // maximum number of unique characters.   string     maxString  (  vector   <  string  >     &  arr  )     {      int     n     =     arr  .  size  ();          int     index     =     -1       maxCnt     =     0  ;          for     (  int     i  =  0  ;     i   <  n  ;     i  ++  )     {          vector   <  bool  >     map  (  26       false  );          for     (  int     j  =  0  ;     j   <  arr  [  i  ].  length  ();     j  ++  )     {      map  [  arr  [  i  ][  j  ]     -     'a'  ]     =     true  ;      }          // Find number of unique char       int     cnt     =     0  ;      for     (  int     j  =  0  ;     j   <  26  ;     j  ++  )     {      if     (  map  [  j  ]     ==     true  )     cnt  ++  ;      }          // If unique count is greater      if     (  cnt     >     maxCnt  )     {      maxCnt     =     cnt  ;      index     =     i  ;      }      }          return     arr  [  index  ];   }   int     main  ()     {      vector   <  string  >     arr     =     {  'abc'       'geeksforgeeks'       'gfg'       'code'  };      cout      < <     maxString  (  arr  );      return     0  ;   }   
Java
   // Java code to find string with maximum   // number of unique characters.   import     java.util.*  ;   class   GfG     {      // Function to find string with       // maximum number of unique characters.      static     String     maxString  (  String  []     arr  )     {      int     n     =     arr  .  length  ;      int     index     =     -  1       maxCnt     =     0  ;      for     (  int     i     =     0  ;     i      <     n  ;     i  ++  )     {      boolean  []     map     =     new     boolean  [  26  ]  ;      for     (  int     j     =     0  ;     j      <     arr  [  i  ]  .  length  ();     j  ++  )     {      map  [  arr  [  i  ]  .  charAt  (  j  )     -     'a'  ]     =     true  ;      }      // Find number of unique char       int     cnt     =     0  ;      for     (  int     j     =     0  ;     j      <     26  ;     j  ++  )     {      if     (  map  [  j  ]     ==     true  )     cnt  ++  ;      }      // If unique count is greater      if     (  cnt     >     maxCnt  )     {      maxCnt     =     cnt  ;      index     =     i  ;      }      }      return     arr  [  index  ]  ;      }      public     static     void     main  (  String  []     args  )     {      String  []     arr     =     {  'abc'       'geeksforgeeks'       'gfg'       'code'  };      System  .  out  .  println  (  maxString  (  arr  ));      }   }   
Python
   # Python code to find string with maximum   # number of unique characters.   # Function to find string with    # maximum number of unique characters.   def   maxString  (  arr  ):   n   =   len  (  arr  )   index   =   -  1   maxCnt   =   0   for   i   in   range  (  n  ):   map   =   [  False  ]   *   26   for   j   in   range  (  len  (  arr  [  i  ])):   map  [  ord  (  arr  [  i  ][  j  ])   -   ord  (  'a'  )]   =   True   # Find number of unique char    cnt   =   sum  (  1   for   j   in   range  (  26  )   if   map  [  j  ])   # If unique count is greater   if   cnt   >   maxCnt  :   maxCnt   =   cnt   index   =   i   return   arr  [  index  ]   if   __name__   ==   '__main__'  :   arr   =   [  'abc'     'geeksforgeeks'     'gfg'     'code'  ]   print  (  maxString  (  arr  ))   
C#
   // C# code to find string with maximum   // number of unique characters.   using     System  ;   class     GfG     {      // Function to find string with       // maximum number of unique characters.      static     string     maxString  (  string  []     arr  )     {      int     n     =     arr  .  Length  ;      int     index     =     -  1       maxCnt     =     0  ;      for     (  int     i     =     0  ;     i      <     n  ;     i  ++  )     {      bool  []     map     =     new     bool  [  26  ];      for     (  int     j     =     0  ;     j      <     arr  [  i  ].  Length  ;     j  ++  )     {      map  [  arr  [  i  ][  j  ]     -     'a'  ]     =     true  ;      }      // Find number of unique char       int     cnt     =     0  ;      for     (  int     j     =     0  ;     j      <     26  ;     j  ++  )     {      if     (  map  [  j  ]     ==     true  )     cnt  ++  ;      }      // If unique count is greater      if     (  cnt     >     maxCnt  )     {      maxCnt     =     cnt  ;      index     =     i  ;      }      }      return     arr  [  index  ];      }      static     void     Main  ()     {      string  []     arr     =     {  'abc'       'geeksforgeeks'       'gfg'       'code'  };      Console  .  WriteLine  (  maxString  (  arr  ));      }   }   
JavaScript
   // JavaScript code to find string with maximum   // number of unique characters.   // Function to find string with    // maximum number of unique characters.   function     maxString  (  arr  )     {      let     n     =     arr  .  length  ;      let     index     =     -  1       maxCnt     =     0  ;      for     (  let     i     =     0  ;     i      <     n  ;     i  ++  )     {      let     map     =     new     Array  (  26  ).  fill  (  false  );      for     (  let     j     =     0  ;     j      <     arr  [  i  ].  length  ;     j  ++  )     {      map  [  arr  [  i  ].  charCodeAt  (  j  )     -     'a'  .  charCodeAt  (  0  )]     =     true  ;      }      // Find number of unique char       let     cnt     =     0  ;      for     (  let     j     =     0  ;     j      <     26  ;     j  ++  )     {      if     (  map  [  j  ]     ===     true  )     cnt  ++  ;      }      // If unique count is greater      if     (  cnt     >     maxCnt  )     {      maxCnt     =     cnt  ;      index     =     i  ;      }      }      return     arr  [  index  ];   }   let     arr     =     [  'abc'       'geeksforgeeks'       'gfg'       'code'  ];   console  .  log  (  maxString  (  arr  ));   

Saída
geeksforgeeks 

Complexidade de tempo: O(n*m) onde n é o tamanho da matriz de strings fornecida e eu é o maior tamanho da string presente na matriz fornecida.
Espaço Auxiliar: O(1)