⭐First non-repeating character in a stream of characters

string Solution::solve(string A) {
    vector<int> visited(26, 0);
    queue<char> q;
    string res;
    
    for(int x: A) {
        // insert newly visited char in order 
        if(visited[x - 'a'] == 0)
            q.push(x);
        
        visited[x - 'a']++;
        
        while(!q.empty() && visited[q.front() - 'a'] > 1)
            q.pop();
        
        if(q.empty())
            res += '#';
        else
            res += q.front();
    }
    
    return res;
}

Time Complexity: O(n)O(n)​

Space Complexity: O(1)O(1)​

Last updated