8 ms·
Back-of-the-envelope approach that should eliminate most branching: int table[256] = {0};
by amm 3y ago
Back-of-the-envelope approach that should eliminate most branching:
int table[256] = {0};
void init() {
table['s'] = 1;
table['p'] = -1;
}
int run_switches(char *input, int size) {
int res = 0;
while (size-- >= 0) res += table[input[size]];
return res;
}
- 414owen 3y agoThe array lookup approach taken in part two: https://owen.cafe/posts/the-same-speed-as-c/ https://owen.cafe/posts/the-same-speed-as-c/ But taking the length of the string as a parameter is not, because that changes the problem statement (making the solution vectorizable) Also note that you'll try to read element -1 of the input. You probably want to change the `>=` to a `>`