# Find one extra character in a string

• Difficulty Level : Easy
• Last Updated : 21 Jul, 2021

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```

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`

## Javascript

 ``

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

 ``

## Javascript

 ``

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`

## Javascript

 ``

Output:

`Extra character: e`

My Personal Notes arrow_drop_up
Recommended Articles
Page :