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

})();

参考实现

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

相关推荐
无限码力2 天前
华为OD技术面真题 - JAVA开发 - 1
华为od·华为od技术面真题·华为od技术面八股·华为od技术面java真题·华为od技术面java八股·华为od技术面题
无限码力3 天前
华为OD技术面真题 - JAVA开发 - 2
华为od·华为od技术面真题·华为od技术面八股·华为od面试八股文·华为od技术面java开发
uesowys3 天前
华为OD算法开发指导-二级索引
数据结构·算法·华为od
嵌入式进阶行者9 天前
【算法】深度优先搜索实例:华为OD机考双机位A卷- 中庸行者
c++·算法·华为od·深度优先
无限码力10 天前
华为OD机试双机位C卷 - 快递投放问题 (JAVA & Python & C++ & JS & GO)
华为od·华为od机考·华为od机试·华为od机试双机位c卷·华为od上机考试真题·华为od机考真题·华为od-快递投放问题
vftOWpVs11 天前
施耐德M241 PLC与IAI伺服电缸Ethernet IP通讯解决方案:PLC与伺服配套软件...
华为od
无限码力11 天前
华为OD机试双机位C卷 - 明日之星选举 (JAVA & Python & C/ C++ & JS & GO)
华为od·华为od机考·华为od机试真题·华为od机试·华为od上机考试双机位c卷·华为od上机考试真题·华为od机考真题
无限码力18 天前
华为OD技术面真题 - 计算机网络 - 3
计算机网络·华为od·面试·华为od技术面真题·华为od面试八股文·华为od技术面计算机网络相关
无限码力19 天前
华为OD技术面真题 - 计算机网络 - 2
计算机网络·华为od·华为od技术面真题·华为od面试八股文·华为od技术面计算机网络相关