Related Articles

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

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 experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up