华为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')
    }

})();

参考实现

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

相关推荐
无限码力3 天前
华为OD机试双机位C卷统一考试题库清单(持续收录中)以及考点说明
华为od·华为od机考·华为od机试·华为od机试双机位c卷·华为od机考双机位c卷·华为od双机位c卷·华为od上机考试 双机位c卷
无限码力3 天前
华为OD机试真题 - 没有回文串 (C++ & Python & JAVA & JS & GO)
华为od·华为od机试真题·华为od机试·od机考·华为od上机考试·华为od-没有回文串
无限码力5 天前
华为OD机考真题 -【测试用例执行计划】 (C++ & Python & JAVA & JS & GO)
华为od·华为od机考·华为od机试真题·华为od机试·华为od上机考试·华为od机考真题
开开心心_Every6 天前
无广告干扰:简单好用文字LOGO设计工具
xml·java·网络·数据库·华为od·华为云·excel
我是华为OD~HR~栗栗呀7 天前
(华为od)21届-Python面经
java·前端·c++·python·华为od·华为·面试
无限码力7 天前
华为OD机试双机位C卷 - 采样过滤 (C++ & Python & JAVA & JS & GO)
华为od·华为od机考·华为od机试·华为od机试双机位c卷·华为od上机考试·华为od机考真题·华为od机试-采样过滤
Tony_yitao11 天前
15.华为OD机考 - 执行任务赚积分
数据结构·算法·华为od·algorithm
无限码力13 天前
华为OD机试真题 - 最长广播响应 (C++ & Python & JAVA & JS & GO)
华为od·华为od机试·od机考·华为od上机考试真题·华为od机试-最长广播响应·华为od-最长广播响应
我是华为OD~HR~栗栗呀14 天前
(华为od)Python面经-20届
华为od
兩尛19 天前
猴子爬山od
算法·华为od