# Find one extra character in a string

• Difficulty Level : Easy
• Last Updated : 05 Aug, 2022

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).

Implementation:

## 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``[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 < 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).

Implementation:

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