题目(easy)
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。
思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| const readline = require("readline");
const rl = readline.createInterface({ input: process.stdin, output: process.stdout })
function main() { const num0 = "0".charCodeAt(); const num9 = "9".charCodeAt(); const a = "a".charCodeAt(); const z = "z".charCodeAt(); function isAZ(str) { return str >= a && str <= z; } function isNumber(str) { return str >= num0 && str <= num9; } rl.on("line", (input) => { let n = 0; for (let i = 0; i < input.length; i++) { const val = input[i].charCodeAt(); if (isNumber(val)) { n+= 6; } if (isAZ(val)) { n++; } } const ans = new Array(n).fill(0); let index = input.length - 1; for (let i = n - 1; i >= 0; i--) { const val = input[index].charCodeAt(); if (isAZ(val)) { ans[i] = input[index]; } if (isNumber(val)) { ans[i] = "r"; ans[i - 1] = "e"; ans[i - 2] = "b"; ans[i - 3] = "m"; ans[i - 4] = "u"; ans[i - 5] = "n"; i -= 5; } index--; } console.log(ans.join("")); }) }
main();
|
时间复杂度: O(n)。
空间复杂度: O(1)。