program to find first non repeating character in a string c# - 3 ways
In c# you want to create logic that if a string like "abcabd" is passed to a method then it should return first non repetitive character from string like in above it should return "c".
Below is three way to get the first non-repeating(distinct) character from the string -
Related post - program to removing duplicate entries, records from Array in C#.NET, program for factorial using recursion, while and for loop in c#, Reverse number program in c#, Get max occurred character in string in c#
If we are talking about performance ( like execution time, complexity etc ) and arranging the above three ways in ascending order of execution time then sequence must be as below -
Using for loop and comparing operator >> using IndexOf and LastIndexOf method of string type >> Using Linq GroupBy method.
public char firstNonRepetitive(string inputString)
//nullable char type
public char firstNonRepetitive(string inputString)
public char firstNonRepetitive(string inputString)
public char firstNonRepetitive(string inputString)
Input - "abcabd"
Output - "c"
Below is three way to get the first non-repeating(distinct) character from the string -
- First using IndexOf and LastIndexOf method of string type.
- Using for loop and comparing operator.
- Using Linq GroupBy method.
Related post - program to removing duplicate entries, records from Array in C#.NET, program for factorial using recursion, while and for loop in c#, Reverse number program in c#, Get max occurred character in string in c#
Using for loop and comparing operator >> using IndexOf and LastIndexOf method of string type >> Using Linq GroupBy method.
Find the first non-repeated character in a string - IndexOf Method
public char firstNonRepetitive(string inputString)
{
char firstDistinctChar = '
';
for (int i = 0; i
< inputString.Length; i++)
{
if (inputString.IndexOf(inputString[i],
i + 1) == -1)
{
firstDistinctChar = inputString[i];
break;
}
}
return firstDistinctChar;
}
IndexOf and LastIndexOf method with nallable char type
//nullable char type
public char?
firstNonRepetitive(string inputString)
{
for (int i = 0; i
< inputString.Length; i++)
{
if (inputString.IndexOf(inputString[i])
== inputString.LastIndexOf(inputString[i]))
return inputString[i];
}
return null;
}
Get the first non-repeating(distinct) character from the string - for loop
public char firstNonRepetitive(string inputString)
{
int nextOccurrence = 0;
char firstDistinctChar = '
';
for (int i = 0; i
< inputString.Length; i++)
{
nextOccurrence = 0;
for (int
j = (i + 1); j < inputString.Length; j++)
{
if (inputString[i] == inputString[j])
nextOccurrence++;
}
if (nextOccurrence == 0)
{
firstDistinctChar = inputString[i];
break;
}
}
return firstDistinctChar;
}
Find First Non Repeated Character in String - LINQ - Code
public char firstNonRepetitive(string inputString)
{
char firstDistinctChar = '
';
firstDistinctChar = inputString.GroupBy(x => x).Where(x =>
x.Count() == 1).Select(x => x.Key).First();
return firstDistinctChar;
}
public char firstNonRepetitive(string inputString)
{
char firstDistinctChar = ' ';
firstDistinctChar = (from chr in inputString group chr by chr into charGroups where charGroups.Count() == 1 select charGroups.Key).First();
return firstDistinctChar;
}
Input - "abcabd"
string duplicateCharString = "abcabd";
firstNonRepetitive(duplicateCharString);
Output - "c"