当前位置: 首页 > article >正文

LeetCode.每日一题 831. 隐藏个人信息

 

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

目录

题目: 831. 隐藏个人信息

题解:

代码实现:

完结撒花

 

题目: 831. 隐藏个人信息

题解:

这题的题目非常的长,但也有好处,一眼就看出来是模拟题。模拟题一般都不会很难,这里我们来看看具体是怎么做的。

先来分析下题目,大概有两种情况.

第一种是邮箱,相对来说比较简单

将所有字符转换成小写字母,之后再将第一个字符到域名前的两个字符转换成*****.即可

那么我们来看看如何判断这种情况呢?

邮箱中一定含有@这个符号,所以我们find一下就可以了,如果有则说明是邮箱.

(注意,若没有find到 则返回的是::nopos,据此来判断即可)

所以若为邮箱,我们先使用(transform函数)

其定义为

 transform(first.begin(),first.end(),second.begin(),op);

前两个参数为:检测范围,第三个参数为把转换后的结果存入的目标容器,最后一个参数为操作符 

将所有字母转换为小写字母后,直接返回,第一个字符加上五个*,再加上@的前一个字符到最后即可.

return s.substr(0,1)+"*****"+s.substr(at-1);

注:substr的(src,length)含义为:从目标点开始选取length的字符

                  (src)从src到结尾的字符 

 第二种是电话号码,相对来说比较困难了

 第一步将所有的符号去掉,这里采用正则表达式的方法.

 s=regex_replace(s,regex("[^0-9]"),"");

 regex_replace为正则表达式里的替换函数,需要包含<regex>头文件.

其三个参数为:src原地址,正则表达式,替换为.

所以这里的意思是将所有0-9数字以外的字符替换成 "",也就是删除,(^表示取反),之后存入s当中

 return country[s.size()-10]+"***-***-"+s.substr(s.size()-4);

因为题目规定了,手机号为10位,所以国家号的长度即为size-10

至此即可做完本题

(过几天我会更新一下c++用正则表达式的博客,可以关注下) 

模拟题虽然没有很算法,但我觉得对于学习函数还是很有意义的! 

代码实现:

class Solution {
    vector<string>country={"","+*-","+**-","+***-"};
public:
    string maskPII(string s) {
        string res;
       auto at= s.find("@");
       if(at != string::npos)
       {
        transform(s.begin(),s.end(),s.begin(),::tolower);
        return s.substr(0,1)+"*****"+s.substr(at-1);
       }

            s=regex_replace(s,regex("[^0-9]"),"");
            return country[s.size()-10]+"***-***-"+s.substr(s.size()-4);

    }
};

 

完结撒花:

🌈本篇博客的内容【LeetCode.每日一题 831. 隐藏个人信息】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!


http://www.kler.cn/a/5319.html

相关文章:

  • 『SQLite』解释执行(Explain)
  • 《鸿蒙系统AI技术:筑牢复杂网络环境下的安全防线》
  • xxl-job回调执行器,发生NPE空指针异常
  • uniapp 导入uview-plus,使用组件出现,页面出现<up-parse>元素不存在,请检查你的代码
  • 【cuda学习日记】2.cuda编程模型
  • STM32之CAN通讯(十一)
  • 1662_MIT 6.828 JOS check_page_free_list实现分析以及boot_alloc问题修复
  • Book:实战Java高并发程序设计(第二版)
  • 如何建立python应用的docker镜像
  • vue中的$refs(父访子)——访问子组件数据+方法
  • python -- 科研论文海洋气象科学绘图的配色汇总
  • centos挂载磁盘
  • Redis HyperLogLog底层实现和Redis 7.0特性主从复制优化
  • TC275-点亮属于AutoSAR的灯之MCAL配置
  • 【机器学习】线性回归
  • 【C语言督学训练营 第五天】数组字符串相关知识
  • Ceres 自动求导解析-从原理到实践
  • mysql主从(单主)同步原理
  • 信号集操作函数
  • Matbox V1.0.7更新预览与手册
  • TryHackMe-harder(boot2root)
  • ShaderGraph前言
  • English Learning - L2 语音作业打卡 舌边音 [r] [l] Day37 2023.3.29 周三
  • 你知道Python 最常用的 20 个包吗(按照使用频率排序)
  • Java 抽象类中构造方法的作用?如何理解?
  • JS和Jquery