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

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

题目

独立实现

思路

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

源码实现

js 复制代码
	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')
    }

})();

参考实现

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

相关推荐
塔中妖5 天前
【华为OD】分割数组的最大差值
数据结构·算法·华为od
塔中妖5 天前
【华为OD】数字游戏
算法·游戏·华为od
熊文豪6 天前
【华为OD】找出通过车辆最多颜色
算法·华为od
塔中妖6 天前
【华为OD】环中最长子串2
算法·华为od
熊文豪6 天前
【华为OD】区块链文件转储系统
算法·华为od·区块链
塔中妖6 天前
【华为OD】Linux发行版的数量
linux·算法·华为od
熊文豪6 天前
【华为OD】阿里巴巴找黄金宝箱
算法·华为od
塔中妖6 天前
【华为OD】5G网络建设
网络·5g·华为od
塔中妖7 天前
【华为OD】查找接口成功率最优时间段
算法·链表·华为od
塔中妖7 天前
【华为OD】最大子矩阵和
算法·华为od·矩阵