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

})();

参考实现

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

相关推荐
蜗牛的旷野11 天前
华为OD机试_2025 B卷_矩形相交的面积(Python,100分)(附详细解题思路)
开发语言·python·华为od
_不会dp不改名_12 天前
华为OD 最小循环子数组
算法·华为od·kmp
m0_6407435613 天前
华为OD-2024年E卷-字符串化繁为简[200分] -- python
python·华为od
小猫咪怎么会有坏心思呢13 天前
华为OD机考-生成哈夫曼树-二叉树(JAVA 2025B卷)
java·开发语言·华为od
小猫咪怎么会有坏心思呢13 天前
华为OD机试-云短信平台优惠活动-完全背包(JAVA 2024E卷)
java·开发语言·华为od
小猫咪怎么会有坏心思呢13 天前
华为OD机考-小明减肥-DFS(JAVA 2025B卷)
java·华为od·深度优先
小猫咪怎么会有坏心思呢14 天前
华为OD机考-最小循环子数组-字符串(JAVA 2025B卷)
java·开发语言·华为od
m0_6407435615 天前
华为OD-2024年E卷-中文分词模拟器[200分] -- python
python·华为od·中文分词
小猫咪怎么会有坏心思呢15 天前
华为OD机试-最佳植树距离-二分(JAVA 2025A卷)
java·开发语言·华为od
小猫咪怎么会有坏心思呢16 天前
华为OD机试-返回矩阵中非1的元素、个数/数值同化-BFS(JAVA 2025B卷)
java·华为od·深度优先