../ Competitive Programming
-rw-r--r--aguang760 B1 min read

Leet Code Daily - 2024-04-30 - Number of Wonderful Substrings

Solution

Preffix Sum + Bit Mask.

Code

c++
class Solution {
public:
    int flip(int mask, int pos) {
        int bit = 1 << pos;
        return (mask & bit) ? (mask - bit) : (mask + bit);
    }

    long long wonderfulSubstrings(string word) {
        long long cnt[1024] = { 1, 0 }, ans = 0;
        int mask = 0;
        for (const char& c : word) {
            mask = flip(mask, c - 'a');
            ans += cnt[mask];
            for (char c = 'a'; c <= 'j'; c++) {
                ans += cnt[flip(mask, c - 'a')];
            }
            cnt[mask]++;
        }
        return ans;
    }
};

COMMAND INTERFACE

↑ ↓ navigate · Enter execute · Esc exit · try “whoami”

Loading filesystem…

:help aguang.xyz

A personal website disguised as an operating system.

Ctrl / Cmd + K
Command palette + full-text search
Tab / Shift + Tab
Move between links and controls
Enter
Open a focused link or search result
↑ / ↓ in search
Navigate search results
In a directory filter
Enter/Done or ↓ focuses a result; Esc clears the filter
Esc
Clear a search or close a window