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

华为OD --- 敏感字段加密

华为OD --- 敏感字段加密

  • 题目
    • 独立实现
      • 思路
      • 源码实现
    • 参考实现

题目

在这里插入图片描述

独立实现

思路

通过便利字符串把所有“关键字”找出来,然后将第N个关键字替换成******,最后再通过 “_” 拼接起来即可

源码实现

	const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // 输入字符串个数
    const allStrLength = []
    // 保存关键字
    const keywordIndex = Number(await readline());

    let inputStr = await readline();

    let currentKeyStr = ''
    let startFlag = false
    for (let i = 0; i < inputStr.length; i++) {
        if (inputStr[i] === '"') {
            if (startFlag === false) {
                // 特殊关键词处理开始
                startFlag = true
                currentKeyStr += '"'
                continue
            }
            if (startFlag === true) {
                startFlag = false
                currentKeyStr += '"'
                allStrLength.push(currentKeyStr)
                currentKeyStr = ''
                continue
            }
        }
        if (inputStr[i] === '_' && startFlag === false) {

            if (currentKeyStr !== '') allStrLength.push(currentKeyStr)
            currentKeyStr = ''
            continue;
        }
        if (inputStr[i] !== '_' && inputStr[i] !== '"' || startFlag === true) {
            currentKeyStr += inputStr[i]
        }
        if (i === inputStr.length - 1 && currentKeyStr !== '') {
            allStrLength.push(currentKeyStr)
        }
    }


    if(keywordIndex < allStrLength.length){
        allStrLength[keywordIndex] = '******'

        const transformInputStr = allStrLength.map(item => item === '' ? '""' : item).join('_')
        console.log(transformInputStr)
    }else{
        console.log('ERROR')
    }

})();

参考实现

在网上看了参考实现和题主的独立实现思路差不多,固不搬运了


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

相关文章:

  • 【原生js案例】让你的移动页面实现自定义的上拉加载和下拉刷新
  • Windows server 服务器网络安全管理之防火墙出站规则设置
  • 理解 EXPLAIN
  • W25Q128读写实验(一)
  • OpenSSL 心脏滴血漏洞(CVE-2014-0160)
  • 武汉市电子信息与通信工程职称公示了
  • C++ 面向对象编程:友元、
  • JMeter HTTP Cookie管理器(HTTP Cookie Manager)
  • D100【python 接口自动化学习】- pytest进阶之fixture用法
  • Java开发经验——数据库开发经验
  • clickhouse优化记录
  • 华为DHCP高级配置学习笔记
  • 数据结构_赫夫曼树(基于例题)
  • 【杂谈】虚拟机与EasyConnect运行巧设:Reqable助力指定应用流量专属化
  • 软件需求分析常见误区(三),瀑布模型中需求分析遇到的问题
  • ScottPlot学习的常用笔记-02
  • 《SIFT 算法及原理详解》
  • Verilog中initial的用法
  • 使用C语言编写UDP循环接收并打印消息的程序
  • 云手机:超越常规认知的多功能利器
  • Vue3之路由(Router)介绍
  • [论文阅读]Universal and transferable adversarial attacks on aligned language models
  • MapReduce的shuffle过程详解
  • 【论文阅读】Deep Neural Network Pruning Using Persistent Homology
  • iClient3D for Cesium 实现限高分析
  • 【AI学习】Huggingface复刻Test-time Compute Scaling技术