Skip to content
Related Articles

Related Articles

Improve Article
String with maximum number of unique characters
  • Difficulty Level : Medium
  • Last Updated : 31 May, 2021

Given a list of strings, find the largest string among all. The largest string is the string with the largest number of unique characters.
 

Example: 

Input : "AN KOW", "LO JO", "ZEW DO RO" 
Output : "ZEW DO RO" 
Explanation : 
"ZEW DO RO" has maximum distinct letters.

Input : "ROMEO", "EMINEM", "RADO"
Output : "ROMEO" 
Explanation : In case of tie, we can print
any of the strings.

 

We iterate over the strings and take a boolean array to check the presence of letters. Also, keep track of the maximum unique letters. Return the string with the maximum number of distinct characters.
 

C++




// C++ code to find
// the largest string
#include <bits/stdc++.h>
using namespace std;
 
// Function to find string
// with maximum number of
// unique characters.
void LargestString(string *na)
{
    int N = sizeof(na) /
            sizeof(na[0]);
    int c[N];
 
    // Index of string with
    // maximum unique characters
    int m = 1;
 
    // iterate through
    // all strings
    for (int j = 0; j < N; j++)
    {
        // array indicating any
        // alphabet included or
        // not included
        bool character[26];
 
        // count number of unique
        // alphabets in each string
        for (int k = 0; k < na[j].size(); k++)
        {
            int x = (int)(na[j][k] - 'A');
            if (na[j][k] != ' ' &&
                character[x] == false)
            {
                c[j]++;
                character[x] = true;
            }
        }
 
        // keep track of maximum
        // number of alphabets
        if (c[j] > c[m])
            m = j;
    }
    // print result
    cout << na[m] << endl;
}
 
// Driver code
int main()
{
    string na[] = {"BOB", "A AB C JOHNSON",
                   "ANJALI","ASKRIT",
                   "ARMAN MALLIK"};
 
    LargestString(na);
}
 
// This code is contributed by
// Manish Shaw(manishshaw1)

Java




// Java code to find the largest string
import java.lang.*;
import java.io.*;
import java.util.Arrays;
 
class Geek {
 
    // Function to find string with maximum
    // number of unique characters.
    public static void LargestString(String na[])
    {
        int N = na.length;
        int c[] = new int[N];
 
        // Index of string with maximum unique
        // characters
        int m = 0;
 
        // iterate through all strings
        for (int j = 0; j < N; j++)
        {
            // array indicating any alphabet
            // included or not included
            boolean character[] = new boolean[26];
 
            // count number of unique alphabets in each string
            for (int k = 0; k < na[j].length(); k++)
            {
                int x = na[j].charAt(k) - 'A';
                if ((na[j].charAt(k) != ' ') &&
                        (character[x] == false))
                {
                    c[j]++;
                    character[x] = true;
                }
            }
 
            // keep track of maximum number of alphabets
            if (c[j] > c[m])
                m = j;
        }
 
        // print result
        System.out.println(na[m]);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String na[] = {"BOB", "A AB C JOHNSON","ANJALI",
                       "ASKRIT", "ARMAN MALLIK"};
 
        LargestString(na);
    }
}

Python3




# Python3 code to find the largest string
 
# Function to find string with maximum
# number of unique characters.
def LargestString(na):
    N = len(na)
    c = [0] * N
     
    # Index of string with
    # maximum unique characters
    m = 0
     
    # Iterate through all strings
    for j in range(N):
         
        # Array indicating any alphabet
        # included or not included
        character = [False] * 26
         
        # count number of unique
        # alphabets in each string
        for k in range(len(na[j])):
            x = ord(na[j][k]) - ord('A')
             
            if ((na[j][k] != ' ') and (character[x] == False)):
                c[j] += 1
                character[x] = True
             
            # keep track of maximum
            # number of alphabets
            if (c[j] > c[m]):
                m = j
                 
    # print result
    print(na[m])
 
# Driver code
na = ["BOB", "A AB C JOHNSON","ANJALI",
                "ASKRIT", "ARMAN MALLIK"]
LargestString(na)
 
# This article is Contributed by Sharad Bhardwaj.

C#




// C# code to find the largest string
using System;
 
class GFG {
 
    // Function to find string with maximum
    // number of unique characters.
    public static void LargestString(string []na)
    {
        int N = na.Length;
        int []c = new int[N];
 
        // Index of string with maximum unique
        // characters
        int m = 0;
 
        // iterate through all strings
        for (int j = 0; j < N; j++)
        {
            // array indicating any alphabet
            // included or not included
            bool []character = new bool[26];
 
            // count number of unique alphabets
            // in each string
            for (int k = 0; k < na[j].Length; k++)
            {
                int x = na[j][k] - 'A';
                 
                if ((na[j][k] != ' ') &&
                        (character[x] == false))
                {
                    c[j]++;
                    character[x] = true;
                }
            }
 
            // keep track of maximum number of
            // alphabets
            if (c[j] > c[m])
                m = j;
        }
 
        // print result
        Console.Write(na[m]);
    }
 
    // Driver code
    public static void Main()
    {
        string []na = {"BOB", "A AB C JOHNSON",
           "ANJALI", "ASKRIT", "ARMAN MALLIK"};
 
        LargestString(na);
    }
}
 
// This code is contributed by nitin mittal.

PHP




<?php
// PHP implementation to
// find the largest string
 
// Function to find string with maximum
// number of unique characters
function LargestString($na)
{
    $N = sizeof($na);
    $c = array_fill(0, $N, 0);
     
    // Index of string with maximum unique
    // characters
    $m = 0;
 
    // iterate through all strings
    for ($j = 0; $j < $N; $j++)
    {
        // array indicating any alphabet
        // included or not included
        $character = array_fill(0, 26,
                                false);
         
        // count number of unique
        // alphabets in each string
        for ($k = 0; $k < strlen($na[$j]);
                                    $k++)
        {
            $x = ord($na[$j][$k]) - 65;
            if (($na[$j][$k] != ' ') &&
                ($character[$x] == false))
            {
                $c[$j]++;
                $character[$x] = true;
            }
        }
 
        // keep track of maximum
        // number of alphabets
        if ($c[$j] > $c[$m])
            $m = $j;
    }
 
    // print result
    echo $na[$m]."\n";
}
 
// Driver code
$na = array("BOB", "A AB C JOHNSON",
            "ASKRIT", "ARMAN MALLIK",
                           "ANJALI");
LargestString($na);
 
// This code is contributed by mits
?>

Javascript




<script>
 
// C# code to find the largest string
 
 
// Function to find string with maximum
// number of unique characters.
function LargestString(na)
{
    let N = na.length;
    let c = new Array(N);
 
    // Index of string with maximum unique
    // characters
    let m = 1;
 
    // iterate through all strings
    for (let j = 0; j < N; j++)
    {
        // array indicating any alphabet
        // included or not included
        let character = new Array(26,0);
 
        // count number of unique alphabets
        // in each string
        for (let k = 0; k < na[j].length; k++)
        {
            let x = na[j][k].charCodeAt(0)-65;
             
            if ((na[j][k] != ' ') &&
                    (character[x] == 0))
            {
                c[j]++;
                character[x] = 1;
            }
        }
 
        // keep track of maximum number of
        // alphabets
        if (c[j] > c[m])
            m = j;
    }
 
    // prlet result
    document.write(na[m]);
}
 
// Driver code
 
let na =["BOB", "A AB C JOHNSON","ANJALI", "ASKRIT", "ARMAN MALLIK"];
 
LargestString(na);
 
 
</script>

Output: 



A AB C JOHNSON

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes 




My Personal Notes arrow_drop_up
Recommended Articles
Page :