Bird
Raised Fist0
DSA C#programming~20 mins

First Non Repeating Character Using Hash in DSA C# - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
šŸŽ–ļø
First Non Repeating Character Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
ā“ Predict Output
intermediate
2:00remaining
Output of First Non Repeating Character Index
What is the output of the following C# code that finds the index of the first non-repeating character in the string?
DSA C#
using System;
using System.Collections.Generic;

class Program {
    static int FirstNonRepeatingChar(string s) {
        var counts = new Dictionary<char, int>();
        foreach (var c in s) {
            if (counts.ContainsKey(c)) counts[c]++;
            else counts[c] = 1;
        }
        for (int i = 0; i < s.Length; i++) {
            if (counts[s[i]] == 1) return i;
        }
        return -1;
    }

    static void Main() {
        Console.WriteLine(FirstNonRepeatingChar("aabc"));
    }
}
A2
B-1
C0
D3
Attempts:
2 left
šŸ’” Hint
Check the frequency of each character and find the first with count 1.
ā“ Predict Output
intermediate
2:00remaining
Output of First Non Repeating Character Index with all repeating
What is the output of the following C# code when all characters repeat?
DSA C#
using System;
using System.Collections.Generic;

class Program {
    static int FirstNonRepeatingChar(string s) {
        var counts = new Dictionary<char, int>();
        foreach (var c in s) {
            if (counts.ContainsKey(c)) counts[c]++;
            else counts[c] = 1;
        }
        for (int i = 0; i < s.Length; i++) {
            if (counts[s[i]] == 1) return i;
        }
        return -1;
    }

    static void Main() {
        Console.WriteLine(FirstNonRepeatingChar("aabbcc"));
    }
}
A6
B0
C1
D-1
Attempts:
2 left
šŸ’” Hint
If no character appears once, the function returns -1.
šŸ”§ Debug
advanced
2:00remaining
Identify the error in this First Non Repeating Character code
What error does this C# code produce when run?
DSA C#
using System;
using System.Collections.Generic;

class Program {
    static int FirstNonRepeatingChar(string s) {
        var counts = new Dictionary<char, int>();
        foreach (var c in s) {
            counts[c] += 1;
        }
        for (int i = 0; i < s.Length; i++) {
            if (counts[s[i]] == 1) return i;
        }
        return -1;
    }

    static void Main() {
        Console.WriteLine(FirstNonRepeatingChar("hello"));
    }
}
ANullReferenceException
BKeyNotFoundException
C0
D-1
Attempts:
2 left
šŸ’” Hint
Check how dictionary keys are accessed and updated.
ā“ Predict Output
advanced
2:00remaining
Output of First Non Repeating Character with Unicode characters
What is the output of this C# code when the input string contains Unicode characters?
DSA C#
using System;
using System.Collections.Generic;

class Program {
    static int FirstNonRepeatingChar(string s) {
        var counts = new Dictionary<char, int>();
        foreach (var c in s) {
            if (counts.ContainsKey(c)) counts[c]++;
            else counts[c] = 1;
        }
        for (int i = 0; i < s.Length; i++) {
            if (counts[s[i]] == 1) return i;
        }
        return -1;
    }

    static void Main() {
        Console.WriteLine(FirstNonRepeatingChar("aƔa"));
    }
}
A-1
B0
C1
D2
Attempts:
2 left
šŸ’” Hint
Unicode characters are treated as distinct chars.
🧠 Conceptual
expert
2:00remaining
Why use a hash map for First Non Repeating Character?
Why is using a hash map (dictionary) the best approach to find the first non-repeating character in a string?
AIt allows counting character frequencies in one pass and then finding the first unique character in another pass efficiently.
BIt uses recursion to check each character's uniqueness.
CIt sorts the characters alphabetically to find the first unique character.
DIt converts the string to a list and removes duplicates.
Attempts:
2 left
šŸ’” Hint
Think about how to count and check characters efficiently.

Practice

(1/5)
1. What is the main purpose of using a hash (dictionary) when finding the first non-repeating character in a string?
easy
A. To count the frequency of each character in the string
B. To sort the characters alphabetically
C. To reverse the string quickly
D. To store the string length

Solution

  1. Step 1: Understand the role of hash in frequency counting

    A hash (dictionary) stores each character as a key and counts how many times it appears in the string.
  2. Step 2: Use frequency to find non-repeating character

    By checking the counts, we can find the first character with count 1, which is the first non-repeating character.
  3. Final Answer:

    To count the frequency of each character in the string -> Option A
  4. Quick Check:

    Hash = frequency map [OK]
Hint: Use hash to count characters, then find first with count 1 [OK]
Common Mistakes:
  • Trying to sort characters instead of counting
  • Using hash to store indexes only
  • Ignoring character frequency
2. Which of the following C# code snippets correctly initializes a dictionary to count character frequencies for a string input?
easy
A. var freq = new Dictionary(); foreach (char c in input) { if (freq.ContainsKey(c)) freq[c]++; else freq[c] = 1; }
B. var freq = new Dictionary(); foreach (char c in input) { freq[c] = 1; }
C. var freq = new List<int>(); foreach (char c in input) { freq.Add(c); }
D. var freq = new Dictionary(); foreach (char c in input) { freq[c] = c.ToString(); }

Solution

  1. Step 1: Check dictionary key and value types

    We need a dictionary with char keys and int values to count frequencies.
  2. Step 2: Verify frequency counting logic

    var freq = new Dictionary(); foreach (char c in input) { if (freq.ContainsKey(c)) freq[c]++; else freq[c] = 1; } correctly checks if the character exists and increments count or sets it to 1.
  3. Final Answer:

    var freq = new Dictionary(); foreach (char c in input) { if (freq.ContainsKey(c)) freq[c]++; else freq[c] = 1; } -> Option A
  4. Quick Check:

    Correct dictionary type and counting logic [OK]
Hint: Use Dictionary and increment counts properly [OK]
Common Mistakes:
  • Using wrong dictionary types
  • Not incrementing counts correctly
  • Using List instead of Dictionary
3. What will be the output of the following C# code?
string input = "swiss";
var freq = new Dictionary();
foreach (char c in input) {
  if (freq.ContainsKey(c)) freq[c]++;
  else freq[c] = 1;
}
char result = '\0';
foreach (char c in input) {
  if (freq[c] == 1) {
    result = c;
    break;
  }
}
Console.WriteLine(result == '\0' ? "None" : result);
medium
A. i
B. s
C. w
D. None

Solution

  1. Step 1: Count character frequencies in "swiss"

    s appears 3 times, w appears 1 time, i appears 1 time.
  2. Step 2: Find first character with frequency 1 in original order

    Order is s, w, i, s, s. The first with count 1 is 'w'.
  3. Final Answer:

    w -> Option C
  4. Quick Check:

    First unique char = w [OK]
Hint: Check counts, then scan string order for first count 1 char [OK]
Common Mistakes:
  • Choosing 'i' because it is unique but not first
  • Choosing 's' which repeats
  • Printing None incorrectly
4. Identify the bug in the following code that tries to find the first non-repeating character:
string input = "hello";
var freq = new Dictionary();
foreach (char c in input) {
  freq[c] = freq[c] + 1;
}
char result = '\0';
foreach (char c in input) {
  if (freq[c] == 1) {
    result = c;
    break;
  }
}
Console.WriteLine(result == '\0' ? "None" : result);
medium
A. The result variable is not initialized
B. freq[c] is used before initialization causing KeyNotFoundException
C. The loop does not iterate over the string
D. The output statement is missing

Solution

  1. Step 1: Analyze frequency counting loop

    The code tries to increment freq[c] without checking if c exists in dictionary, causing error.
  2. Step 2: Identify correct fix

    Must check if freq contains c before incrementing or initialize freq[c] to 1 if missing.
  3. Final Answer:

    freq[c] is used before initialization causing KeyNotFoundException -> Option B
  4. Quick Check:

    Accessing uninitialized key causes error [OK]
Hint: Always check key exists before incrementing dictionary value [OK]
Common Mistakes:
  • Assuming dictionary auto-initializes keys
  • Ignoring exception details
  • Missing initialization logic
5. Given the string input = "aabbccddeeffg", which character will be the first non-repeating character using a hash-based approach? If none exists, return 'None'.
hard
A. f
B. a
C. None
D. g

Solution

  1. Step 1: Count frequencies of each character

    Characters a,b,c,d,e,f appear twice each; g appears once.
  2. Step 2: Find first character with frequency 1 in string order

    String order is a,a,b,b,c,c,d,d,e,e,f,f,g. The first with count 1 is 'g'.
  3. Final Answer:

    g -> Option D
  4. Quick Check:

    Only 'g' is unique and first non-repeating [OK]
Hint: Check counts, then scan string order for first unique char [OK]
Common Mistakes:
  • Choosing 'None' incorrectly
  • Picking repeated characters
  • Ignoring last unique character
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard