Wednesday, December 25, 2013

Write a program to find the first occurrence of a unique character in a string

For example, given a string: "aBcBcaAbBaAdAc", b and d are unique occurrences and b is the first one.

The approach:-
  1. Count each occurrence of the characters. Also whenever it is first occurrence append it to an order array.
  2. Traverse through order array to check for first occurrence of 1 in occurrence counter.

C++ program to find the first occurrence of a unique character in a string

#include <iostream>
using namespace std;

int main()
{
    string input = "aBcBcaAbBaAdAc";

    cout << "input is : " << input << endl;

    map <char,int> counter;
    map <int, char> order;
    int orderCtr = 0;

    string::iterator it;
    for (it=input.begin(); it != input.end(); ++it)
    {
      counter[*it]++;
      if (counter[*it] == 1)
            order[orderCtr++] = *it;
    }

    for (int i=0; i< order.size(); ++i)
    {
        if ( counter[order[i]] == 1)
        {
            cout << "First unique character is: " << order[i] << endl;
            return 0;
        }
    }

    cout << "No unique char found " << endl;
    return 0;
}

Output:-
input is : aBcBcaAbBaAdAc
First unique character is: b

0 comments :

Post a Comment

Contact Form

Name

Email *

Message *

Back to Top