Masking Personal Information LeetCode solution in C++
1class Solution {2public:3string email(string &s, int id) {4string t = string(1, s[0] | ' ') + "*****" + string(1, s[id - 1] | ' ');56for (int i = id + 1; i != s.size(); i++)7if (s[i] != '.') s[i] |= ' ';89return t + s.substr(id, s.size());10}1112string phone(string &s) {13string table[] = {"", "+*-", "+**-", "+***-"}, t;1415for (auto &ch : s)16if (ch >= '0' && ch <= '9') t.push_back(ch);1718return table[t.size() - 10] + "***-***-" + t.substr(t.size() - 4, 4);19}2021string maskPII(string s) {22int id = s.find('@');23return id == -1 ? phone(s) : email(s, id);24}25};