javascript - 修改字符串的索引
问题描述
我想知道用于替换字符串中的字符(在 javascript 中)的运行时。
例如
let str = "hello world";
str[0] = "n";
console.log(str); // hello world
在严格模式下,这会引发错误,因为您无法修改字符串(只读)。
您将如何在 js 中实现 O(1) 时间、O(1) 空间算法str[index] = char
?在 C 中,这是微不足道的,因为访问是 O(1),您可以修改该元素而无需分配新数组并复制值。
我找到了使用 split 来执行此操作的解决方案……但这不是矫枉过正吗?这意味着 O(n) 时间和空间。
想知道这主要是为了面试问题,因为我使用 javascript
解决方案
您可以使用substring
:
"use strict";
const replaceCharAt = (s, c, i) => i ? (i != 1 ? c + s.substring(i + 1) : s[0] + c + s.substring(3)) : c + s.substring(i);
let str = "hello world";
str = replaceCharAt(str, "n", 0);
str = replaceCharAt(str, "3", 1);
console.log(str);
推荐阅读
- qt - QT QML 没有动态调整大小
- r - 如何在 R 的另一个数据框中获取我正在寻找的值的行和列
- cassandra - 三节点 Cassandra 集群所有节点在同一个 dc 中配置不同的机架
- angular - Angular Firestore 使用两个相等的 where 条件查询集合
- amazon-web-services - 为什么不能在域名上配置 AWS 安全组
- mongodb - Mongoose - 查询 Mongo 对象数组,匹配搜索数组中的任何对象
- c - 从不同的功能插入 GLib 树
- html - esp32 网站 ASCII 到字符转换
- python - 初学者:Python 声音模块不起作用(循环导入)
- java - 在 java 中使用 ArrayList 的 indexOf()