How to return the index of first unique character without inbuilt functions using C#?


Create an empty new array of length 256, traverse through the entire string character by character and increment the value in the new array. At the end traverse the entire array and return the first character that has value 1.

Example 1

aabccd -→2 1 2 1 → Return the first character which is having count 1. That is b.

Example 2

 Live Demo

using System;
namespace ConsoleApplication{
   public class Arrays{
      public int ReturnIndexOfFirstUniqueCharachter(string s){
         int index = -1;
         int[] arrayValues = new int[256];
         for (int i = 0; i < s.Length; i++){
            int value = s[i] - 'a';
            arrayValues[value] += 1;
         }
         for (int i = 0; i < s.Length; i++){
            int value = s[i] - 'a';
            if (arrayValues[value] == 1){
               index = i;
               break;
            }
         }
         return index;
      }
   }
   class Program{
      static void Main(string[] args){
         Arrays a = new Arrays();
         Console.WriteLine(a.ReturnIndexOfFirstUniqueCharachter("bookisgreat"));
         Console.ReadLine();
      }
   }
}

Output

0

Updated on: 27-Aug-2021

354 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements