Bird
0
0
DSA Cprogramming~20 mins

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

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Hash Mastery: First Non Repeating Character
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 this C code that finds the index of the first non-repeating character in the string?
DSA C
#include <stdio.h>
#include <string.h>

int firstNonRepeatingChar(char *str) {
    int count[256] = {0};
    int i;
    for (i = 0; str[i]; i++) {
        count[(unsigned char)str[i]]++;
    }
    for (i = 0; str[i]; i++) {
        if (count[(unsigned char)str[i]] == 1) {
            return i;
        }
    }
    return -1;
}

int main() {
    char str[] = "swiss";
    int index = firstNonRepeatingChar(str);
    printf("%d\n", index);
    return 0;
}
A1
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 different string
What is the output of this C code that finds the index of the first non-repeating character in the string?
DSA C
#include <stdio.h>
#include <string.h>

int firstNonRepeatingChar(char *str) {
    int count[256] = {0};
    int i;
    for (i = 0; str[i]; i++) {
        count[(unsigned char)str[i]]++;
    }
    for (i = 0; str[i]; i++) {
        if (count[(unsigned char)str[i]] == 1) {
            return i;
        }
    }
    return -1;
}

int main() {
    char str[] = "aabbcc";
    int index = firstNonRepeatingChar(str);
    printf("%d\n", index);
    return 0;
}
A0
B-1
C1
D2
Attempts:
2 left
💡 Hint
All characters repeat, so no non-repeating character.
🔧 Debug
advanced
2:00remaining
Identify the error in this code for first non-repeating character
What error will this C code produce when compiled or run?
DSA C
#include <stdio.h>

int firstNonRepeatingChar(char *str) {
    int count[256];
    int i;
    for (i = 0; i < 256; i++) {
        count[i] = 0;
    }
    for (i = 0; str[i]; i++) {
        count[(unsigned char)str[i]]++;
    }
    for (i = 0; str[i]; i++) {
        if (count[(unsigned char)str[i]] == 1) {
            return i;
        }
    }
    return -1;
}

int main() {
    char str[] = "hello";
    int index = firstNonRepeatingChar(str);
    printf("%d\n", index);
    return 0;
}
ACompilation error due to uninitialized array
BRuntime error due to negative array index
CNo error, output is 0
DNo error, output is 2
Attempts:
2 left
💡 Hint
Check how the array is initialized and how characters are used as indices.
Predict Output
advanced
2:00remaining
Output of first non-repeating character index with mixed case
What is the output of this C code that finds the index of the first non-repeating character in the string with mixed case letters?
DSA C
#include <stdio.h>
#include <string.h>

int firstNonRepeatingChar(char *str) {
    int count[256] = {0};
    int i;
    for (i = 0; str[i]; i++) {
        count[(unsigned char)str[i]]++;
    }
    for (i = 0; str[i]; i++) {
        if (count[(unsigned char)str[i]] == 1) {
            return i;
        }
    }
    return -1;
}

int main() {
    char str[] = "aAbBABac";
    int index = firstNonRepeatingChar(str);
    printf("%d\n", index);
    return 0;
}
A1
B6
C-1
D2
Attempts:
2 left
💡 Hint
Remember that uppercase and lowercase letters have different ASCII codes.
🧠 Conceptual
expert
2:00remaining
Why use a hash array for first non-repeating character?
Why is using a hash array (like int count[256]) efficient for finding the first non-repeating character in a string?
ABecause it counts frequency in O(n) time and uses constant space for ASCII
BBecause it sorts the string characters in O(n log n) time
CBecause it uses recursion to find unique characters
DBecause it stores characters in a linked list for quick access
Attempts:
2 left
💡 Hint
Think about how many times the string is scanned and the size of the frequency array.