@@ -105,13 +105,93 @@ Thus, the resulting masked number is "***-***-7890".
105
105
### ** Python3**
106
106
107
107
``` python
108
-
108
+ class Solution :
109
+ def maskPII (self , s : str ) -> str :
110
+ if s[0 ].isalpha():
111
+ s = s.lower()
112
+ return s[0 ] + ' *****' + s[s.find(' @' ) - 1 :]
113
+ s = ' ' .join(c for c in s if c.isdigit())
114
+ cnt = len (s) - 10
115
+ suf = ' ***-***-' + s[- 4 :]
116
+ return suf if cnt == 0 else f ' + { " *" * cnt} - { suf} '
109
117
```
110
118
111
119
### ** Java**
112
120
113
121
``` java
122
+ class Solution {
123
+ public String maskPII (String s ) {
124
+ if (Character . isLetter(s. charAt(0 ))) {
125
+ s = s. toLowerCase();
126
+ int i = s. indexOf(' @' );
127
+ return s. substring(0 , 1 ) + " *****" + s. substring(i - 1 );
128
+ }
129
+ StringBuilder sb = new StringBuilder ();
130
+ for (char c : s. toCharArray()) {
131
+ if (Character . isDigit(c)) {
132
+ sb. append(c);
133
+ }
134
+ }
135
+ s = sb. toString();
136
+ int cnt = s. length() - 10 ;
137
+ String suf = " ***-***-" + s. substring(s. length() - 4 );
138
+ return cnt == 0 ? suf : " +" + " *" . repeat(cnt) + " -" + suf;
139
+ }
140
+ }
141
+ ```
142
+
143
+ ### ** C++**
144
+
145
+ ``` cpp
146
+ class Solution {
147
+ public:
148
+ string maskPII(string s) {
149
+ int i = s.find('@');
150
+ if (i != -1) {
151
+ string ans;
152
+ ans += tolower(s[ 0] );
153
+ ans += "***** ";
154
+ for (int j = i - 1; j < s.size(); ++j) {
155
+ ans += tolower(s[ j] );
156
+ }
157
+ return ans;
158
+ }
159
+ string t;
160
+ for (char c : s) {
161
+ if (isdigit(c)) {
162
+ t += c;
163
+ }
164
+ }
165
+ int cnt = t.size() - 10;
166
+ string suf = "*** -*** -" + t.substr(t.size() - 4);
167
+ return cnt == 0 ? suf : "+" + string(cnt, '* ') + "-" + suf;
168
+ }
169
+ };
170
+ ```
114
171
172
+ ### **Go**
173
+
174
+ ```go
175
+ func maskPII(s string) string {
176
+ i := strings.Index(s, "@")
177
+ if i != -1 {
178
+ s = strings.ToLower(s)
179
+ return s[0:1] + "*****" + s[i-1:]
180
+ }
181
+ t := []rune{}
182
+ for _, c := range s {
183
+ if c >= '0' && c <= '9' {
184
+ t = append(t, c)
185
+ }
186
+ }
187
+ s = string(t)
188
+ cnt := len(s) - 10
189
+ suf := "***-***-" + s[len(s)-4:]
190
+ if cnt == 0 {
191
+ return suf
192
+ }
193
+ return "+" + strings.Repeat("*", cnt) + "-" + suf
194
+ }
115
195
```
116
196
117
197
### ** ...**
0 commit comments