Problem: 831. Masking Personal Information 隐藏个人信息
解题过程
耗时100%,首先判断是邮箱还是手机号,邮箱拿到@前面的小写字母,@后面的小写后缀,拼起来就行。手机号按照长度拼起来就行,后面几个数字放上去
复杂度
Code
class Solution { public: string maskPII(string s) { int ind = s.find('@'); string ret; if(ind == string::npos) { string t; for(char& c : s) { if(isdigit(c)) { t += c; } } if(t.size() == 10) { ret = "***-***-" + t.substr(t.size() - 4); } else { string tmp = string(t.size() - 10, '*'); ret = "+" + tmp + "-***-***-" + t.substr(t.size() - 4); } } else { string t, t1; for(int i = 0; i < ind; i++) { if(isalpha(s[i])) { t += tolower(s[i]); } } for(int i = ind; i < s.size(); i++) { if(isalpha(s[i])) { t1 += tolower(s[i]); } else { t1 += s[i]; } } ret += t[0]; ret += "*****"; ret += t.back(); ret += t1; } return ret; } };