# Find one extra character in a string

Given two strings which are of lengths n and n+1. The second string contains all the character of the first string, but there is one extra character. Your task to find the extra character in the second string.

Examples :

```Input : string strA = "abcd";
string strB = "cbdae";
Output : e
string B contain all the element
there is a one extra character which is e

Input : string strA = "kxml";
string strB = "klxml";
Output : l
string B contain all the element
there is a one extra character which is l
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Method 1(Brute Force):-
Check with two for loop.
Time Complexity:- O(n^2)
Space Complexity:- O(1).

Method 2(Hash Map):-
Create an empty hash table and insert all character of second string. Now remove all characters of first string. Remaining character is the extra character.

Time Complexity:- O(n)
Auxiliary Space:- O(n).

## C++

 `// CPP program to find extra character in one  ` `// string ` `#include ` `using` `namespace` `std; ` ` `  `char` `findExtraCharcter(string strA, string strB) ` `{ ` `    ``// store string values in map ` `    ``unordered_map<``char``, ``int``> m1; ` ` `  `    ``// store second string in map with frequency ` `    ``for` `(``int` `i = 0; i < strB.length(); i++) ` `        ``m1[strB[i]]++; ` ` `  `    ``// store first string in map with frequency ` `    ``for` `(``int` `i = 0; i < strA.length(); i++) ` `        ``m1[strA[i]]--; ` ` `  `    ``for` `(``auto` `h1 = m1.begin(); h1 != m1.end(); h1++) { ` ` `  `        ``// if the frequency is 1 then this ` `        ``// character is which is added extra ` `        ``if` `(h1->second == 1) ` `            ``return` `h1->first; ` `    ``} ` `} ` ` `  `int` `main() ` `{ ` `    ``// given string ` `    ``string strA = ``"abcd"``; ` `    ``string strB = ``"cbdad"``; ` ` `  `    ``// find Extra Character ` `    ``cout << findExtraCharcter(strA, strB); ` `} `

## Java

 `// Java program to find extra character in one  ` `// string ` `class` `GFG  ` `{ ` ` `  `static` `char` `findExtraCharcter(``char` `[]strA, ``char``[] strB) ` `{ ` `    ``// store string values in map ` `    ``int``[] m1 = ``new` `int``[``256``]; ` ` `  `    ``// store second string in map with frequency ` `    ``for` `(``int` `i = ``0``; i < strB.length; i++) ` `        ``m1[strB[i]]++; ` ` `  `    ``// store first string in map with frequency ` `    ``for` `(``int` `i = ``0``; i < strA.length; i++) ` `        ``m1[strA[i]]--; ` ` `  `    ``for` `(``int` `i=``0``;i

## Python3

 `# Python3 program to find extra character  ` `# in one string ` `def` `findExtraCharacter(strA, strB): ` ` `  `    ``# store string values in map ` `    ``m1 ``=` `{} ` ` `  `    ``# store second string in map  ` `    ``# with frequency ` `    ``for` `i ``in` `strB: ` `        ``if` `i ``in` `m1: ` `            ``m1[i] ``+``=` `1` `        ``else``: ` `            ``m1[i] ``=` `1` ` `  `    ``# store first string in map  ` `    ``# with frequency ` `    ``for` `i ``in` `strA: ` `        ``m1[i] ``-``=` `1` ` `  `    ``for` `h1 ``in` `m1: ` ` `  `        ``# if the frequency is 1 then this ` `        ``# character is which is added extra ` `        ``if` `m1[h1] ``=``=` `1``: ` `            ``return` `h1 ` ` `  `# Driver Code ` `if` `__name__ ``=``=` `"__main__"``: ` ` `  `    ``# given string ` `    ``strA ``=` `'abcd'` `    ``strB ``=` `'cbdad'` ` `  `    ``# find Extra Character ` `    ``print``(findExtraCharacter(strA, strB)) ` ` `  `# This code is contributed by ` `# sanjeev2552 `

## C#

 `// C# program to find extra character in one  ` `// string ` `using` `System; ` `     `  `class` `GFG  ` `{ ` ` `  `static` `char` `findExtraCharcter(``char` `[]strA, ``char``[] strB) ` `{ ` `    ``// store string values in map ` `    ``int``[] m1 = ``new` `int``; ` ` `  `    ``// store second string in map with frequency ` `    ``for` `(``int` `i = 0; i < strB.Length; i++) ` `        ``m1[strB[i]]++; ` ` `  `    ``// store first string in map with frequency ` `    ``for` `(``int` `i = 0; i < strA.Length; i++) ` `        ``m1[strA[i]]--; ` ` `  `    ``for` `(``int` `i = 0; i < m1.Length; i++) ` `    ``{ ` ` `  `        ``// if the frequency is 1 then this ` `        ``// character is which is added extra ` `        ``if` `(m1[i]== 1) ` `            ``return` `(``char``) i; ` `    ``} ` `    ``return` `char``.MinValue; ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main(String[] args)  ` `{ ` `    ``// given string ` `    ``String strA = ``"abcd"``; ` `    ``String strB = ``"cbdad"``; ` ` `  `    ``// find Extra Character ` `    ``Console.WriteLine(findExtraCharcter(strA.ToCharArray(),  ` `                                        ``strB.ToCharArray())); ` `    ``} ` `} ` ` `  `// This code is contributed by Rajput-Ji `

Output:

```d
```

Method 3(Bits):-
traverse first and second string from starting with xor operation at the end you get the character which is extra.
Time Complexity:- O(n+n+1)
Space Complexity:- O(1).

## C++

 `// CPP program to find extra character in one  ` `// string ` `#include ` `using` `namespace` `std; ` ` `  `char` `findExtraCharcter(string strA, string strB) ` `{ ` `    ``// result store the result ` `    ``int` `res = 0, i; ` ` `  `    ``// traverse string A till end and  ` `    ``// xor with res ` `    ``for` `(i = 0; i < strA.length(); i++) { ` ` `  `        ``// xor with res ` `        ``res ^= strA[i]; ` `    ``} ` ` `  `    ``// traverse string B till end and  ` `    ``// xor with res ` `    ``for` `(i = 0; i < strB.length(); i++) { ` ` `  `        ``// xor with res ` `        ``res ^= strB[i]; ` `    ``} ` ` `  `    ``// print result at the end ` `    ``return` `((``char``)(res)); ` `} ` ` `  `int` `main() ` `{ ` `    ``// given string ` `    ``string strA = ``"abcd"``; ` `    ``string strB = ``"cbdad"``; ` `    ``cout << findExtraCharcter(strA, strB); ` `    ``return` `0; ` `} `

## Java

 `// Java program to find extra ` `// character in one string ` `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `    ``static` `char` `findExtraCharcter(String strA, ` `                                  ``String strB) ` `    ``{ ` `        ``// result store the result ` `        ``int` `res = ``0``, i; ` `     `  `        ``// traverse string A till  ` `        ``// end and xor with res ` `        ``for` `(i = ``0``; i < strA.length(); i++) ` `        ``{ ` `            ``// xor with res ` `            ``res ^= strA.charAt(i); ` `        ``} ` `     `  `        ``// traverse string B till end and  ` `        ``// xor with res ` `        ``for` `(i = ``0``; i < strB.length(); i++) ` `        ``{ ` `            ``// xor with res ` `            ``res ^= strB.charAt(i); ` `        ``} ` `     `  `        ``// print result at the end ` `        ``return` `((``char``)(res)); ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``// given string ` `        ``String strA = ``"abcd"``; ` `        ``String strB = ``"cbdad"``; ` `        ``System.out.println(findExtraCharcter(strA, strB)); ` `    ``} ` `} ` ` `  `/*This code is contributed by Nikita Tiwari.*/`

## Python 3

 `# Python 3 program to find  ` `# extra character in one string ` ` `  `def` `findExtraCharcter(strA, strB) : ` `     `  `    ``# result store the result ` `    ``res ``=` `0` ` `  `    ``# traverse string A till  ` `    ``# end and xor with res ` `    ``for` `i ``in` `range``(``0``,``len``(strA)) : ` `         `  `        ``# xor with res ` `        ``res ``=``res ^ (``ord``)(strA[i]) ` `         `  `    ``# traverse string B till  ` `    ``# end and xor with res ` `    ``for` `i ``in` `range``(``0``,``len``(strB)) : ` `         `  `        ``# xor with res ` `        ``res ``=` `res ^ (``ord``)(strB[i]) ` `         `  `    ``# print result at the end ` `    ``return` `((``chr``)(res)); ` ` `  `# given string ` `strA ``=` `"abcd"` `strB ``=` `"cbdad"` `print``(findExtraCharcter(strA, strB)) ` ` `  `# This code is contributed by Nikita Tiwari. `

## C#

 `// C# program to find extra character ` `// in one string ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``static` `char` `findExtraCharcter(``string` `strA,  ` `                                  ``string` `strB) ` `    ``{ ` `        ``// result store the result ` `        ``int` `res = 0, i; ` `     `  `        ``// traverse string A till end and  ` `        ``// xor with res ` `        ``for` `(i = 0; i < strA.Length; i++) { ` `     `  `            ``// xor with res ` `            ``res ^= strA[i]; ` `        ``} ` `     `  `        ``// traverse string B till end and  ` `        ``// xor with res ` `        ``for` `(i = 0; i < strB.Length; i++) { ` `     `  `            ``// xor with res ` `            ``res ^= strB[i]; ` `        ``} ` `     `  `        ``// print result at the end ` `        ``return` `((``char``)(res)); ` `    ``} ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// given string ` `        ``string` `strA = ``"abcd"``; ` `        ``string` `strB = ``"cbdad"``; ` `        ``Console.WriteLine( ` `            ``findExtraCharcter(strA, strB)); ` `    ``} ` `} ` ` `  `// This code is contributed by Manish Shaw  ` `// (manishshaw1) `

## PHP

 ` `

Output:

```d
```

Method 4(Character Code):-
Add the character codes of both the strings. Minus character codes of smaller string from larger string and convert the result integer into character.

Time Complexity:- O(n)
Auxiliary Space:- O(1).

## C++

 `    ``// C++ program to find extra ` `// character in one string ` `#include ` `using` `namespace` `std; ` ` `  `char` `findExtraCharacter(string s1, string s2) ` `{      ` `    ``string smallStr; ` `    ``string largeStr; ` ` `  `    ``// Determine string with extra character. ` `    ``if``(s1.size() > s2.size())  ` `    ``{ ` `        ``smallStr = s2; ` `        ``largeStr = s1; ` `    ``}  ` `    ``else` `    ``{ ` `        ``smallStr = s1; ` `        ``largeStr = s2; ` `    ``} ` ` `  `    ``int` `smallStrCodeTotal = 0; ` `    ``int` `largeStrCodeTotal = 0; ` `    ``int` `i = 0; ` ` `  `    ``// Add character codes of both the strings ` `    ``for``(; i < smallStr.size(); i++)  ` `    ``{ ` `        ``smallStrCodeTotal += smallStr[i]; ` `        ``largeStrCodeTotal += largeStr[i]; ` `    ``} ` ` `  `    ``// Add last character code of large string. ` `    ``largeStrCodeTotal += largeStr[i]; ` ` `  `    ``// Minus the character code of smaller string from  ` `    ``// the character code of large string.  ` `    ``// The result will be the extra character code. ` `    ``int` `intChar = largeStrCodeTotal - smallStrCodeTotal;      ` `    ``return` `(``char``)intChar; ` `} ` ` `  `// Driver code  ` `int` `main() ` `{ ` `    ``string s1 = ``"abcd"``; ` `    ``string s2 = ``"cbdae"``; ` `     `  `    ``char` `extraChar = findExtraCharacter(s1, s2); ` `    ``cout<<``"Extra character: "` `<<(extraChar)<

## Java

 `// Java program to find extra ` `// character in one string ` ` `  `public` `class` `Test { ` ` `  `    ``private` `static` `char` `findExtraCharacter(String s1, String s2) {         ` `        ``String smallStr; ` `        ``String largeStr; ` ` `  `        ``// Determine String with extra character. ` `        ``if``(s1.length() > s2.length()) { ` `            ``smallStr = s2; ` `            ``largeStr = s1; ` `        ``} ``else` `{ ` `            ``smallStr = s1; ` `            ``largeStr = s2; ` `        ``} ` ` `  `        ``int` `smallStrCodeTotal = ``0``; ` `        ``int` `largeStrCodeTotal = ``0``; ` `        ``int` `i = ``0``; ` ` `  `        ``// Add character codes of both the strings ` `        ``for``(; i < smallStr.length(); i++) { ` `            ``smallStrCodeTotal += smallStr.charAt(i); ` `            ``largeStrCodeTotal += largeStr.charAt(i); ` `        ``} ` ` `  `        ``// Add last character code of large String. ` `        ``largeStrCodeTotal += largeStr.charAt(i); ` ` `  `        ``// Minus the character code of smaller string from  ` `        ``// the character code of large string.  ` `        ``// The result will be the extra character code. ` `        ``int` `intChar = largeStrCodeTotal - smallStrCodeTotal;         ` `        ``return` `(``char``)intChar; ` `    ``} ` `     `  `    ``public` `static` `void` `main(String[] args) { ` `        ``String s1 = ``"abcd"``; ` `        ``String s2 = ``"cbdae"``; ` `         `  `        ``char` `extraChar = findExtraCharacter(s1, s2); ` `        ``System.out.println(``"Extra character: "` `+ extraChar); ` `         `  `    ``} ` `} ` ` `  ` `  `/*This code is contributed by Amol Bhosale.*/`

## Python3

 `# Python Program to find extra character in one string  ` `def` `findExtraCharacter(s1,s2): ` `    ``smallStr ``=` `"" ` `    ``largeStr ``=` `"" ` `     `  `    ``# Determine string with extra character ` `    ``if``(``len``(s1) > ``len``(s2)): ` `        ``smallStr ``=` `s2 ` `        ``largeStr ``=` `s1 ` `    ``else``: ` `        ``smallStr ``=` `s1 ` `        ``largeStr ``=` `s2 ` `    ``smallStrCodeTotal ``=` `0` `    ``largeStrCodeTotal ``=` `0` `    ``i ``=` `0` `     `  `    ``# Add Character codes of both the strings ` `    ``while``(i < ``len``(smallStr)): ` `        ``smallStrCodeTotal ``+``=` `ord``(smallStr[i]) ` `        ``largeStrCodeTotal ``+``=` `ord``(largeStr[i]) ` `        ``i ``+``=` `1` `     `  `    ``# Add last character code of large string ` `    ``largeStrCodeTotal ``+``=` `ord``(largeStr[i]) ` `     `  `    ``# Minus the character code of smaller string  ` `    ``# from the character code of large string ` `    ``# The result will be the extra character code ` `    ``intChar ``=` `largeStrCodeTotal ``-` `smallStrCodeTotal ` `    ``return` `chr``(intChar) ` ` `  `# Driver code ` `s1 ``=` `"abcd"` `s2 ``=` `"cbdae"` `extraChar ``=` `findExtraCharacter(s1, s2) ` `print``(``"Extra Character:"``, extraChar) ` ` `  `# This code is contributed by simranjenny84 `

## C#

 `// C# program to find extra  ` `// character in one string  ` `using` `System; ` ` `  `class` `GFG  ` `{  ` `    ``private` `static` `char` `findExtraCharacter(String s1,  ` `                                           ``String s2)  ` `    ``{      ` `        ``String smallStr;  ` `        ``String largeStr;  ` ` `  `        ``// Determine String with extra character.  ` `        ``if``(s1.Length > s2.Length)  ` `        ``{  ` `            ``smallStr = s2;  ` `            ``largeStr = s1;  ` `        ``}  ` `        ``else`  `        ``{  ` `            ``smallStr = s1;  ` `            ``largeStr = s2;  ` `        ``}  ` ` `  `        ``int` `smallStrCodeTotal = 0;  ` `        ``int` `largeStrCodeTotal = 0;  ` `        ``int` `i = 0;  ` ` `  `        ``// Add character codes of both the strings  ` `        ``for``(; i < smallStr.Length; i++)  ` `        ``{  ` `            ``smallStrCodeTotal += smallStr[i];  ` `            ``largeStrCodeTotal += largeStr[i];  ` `        ``}  ` ` `  `        ``// Add last character code of large String.  ` `        ``largeStrCodeTotal += largeStr[i];  ` ` `  `        ``// Minus the character code of smaller string  ` `        ``// from the character code of large string.  ` `        ``// The result will be the extra character code.  ` `        ``int` `intChar = largeStrCodeTotal -  ` `                      ``smallStrCodeTotal;          ` `        ``return` `(``char``)intChar;  ` `    ``}  ` `     `  `    ``public` `static` `void` `Main(String[] args) ` `    ``{  ` `        ``String s1 = ``"abcd"``;  ` `        ``String s2 = ``"cbdae"``;  ` `         `  `        ``char` `extraChar = findExtraCharacter(s1, s2);  ` `        ``Console.WriteLine(``"Extra character: "` `+  ` `                                    ``extraChar);  ` `    ``}  ` `}  ` ` `  `// This code is contributed by PrinciRaj1992 `

Output:

```Extra character: e
```

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.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

9

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.