Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >跟踪字符串中特定字符的索引的最有效方法是什么?

跟踪字符串中特定字符的索引的最有效方法是什么?
EN

Stack Overflow用户
提问于 2008-08-30 08:45:45
回答 3查看 364关注 0票数 2

以以下字符串为例:

“敏捷的棕色狐狸”

现在,quick中的q位于字符串的索引4(从0开始),而fox中的f位于索引16。现在假设用户在该字符串中输入了更多文本。

“速度非常快的深褐色狐狸”

现在q在索引9,f在索引26。

无论用户添加多少个字符,跟踪quick中的原始q和fox中的f的索引的最有效方法是什么?

语言对我来说无关紧要,这更多的是一个理论问题,而不是任何东西,所以使用任何你想要的语言,只要尽量保持它一般流行和当前的语言即可。

我给出的示例字符串很短,但我希望有一种方法可以有效地处理任何大小的字符串。因此,使用偏移量更新数组可以使用较短的字符串,但会因为很多字符而停滞不前。

即使在本例中,我在寻找字符串中唯一字符的索引,我也希望能够跟踪同一字符在不同位置的索引,比如brown中的o和fox中的o。所以搜索是不可能的。

我希望答案既节省时间又节省内存,但如果必须选择一个,我更关心性能和速度。

EN

回答 3

Stack Overflow用户

发布于 2008-08-30 08:51:05

您的问题有点模棱两可--您是否希望跟踪每个字母的第一个实例?如果是这样,长度为26的数组可能是最好的选择。

无论何时在低于索引位置的字符串中插入文本,只需根据插入字符串的长度计算偏移量即可。

票数 2
EN

Stack Overflow用户

发布于 2008-08-30 09:25:15

如果你已经有了目标语言,这也会有所帮助,因为并不是所有的数据结构和交互在所有语言中都是同样有效的。

票数 1
EN

Stack Overflow用户

发布于 2008-10-07 01:49:11

在类似的情况下,通常有用的标准技巧是将字符串的字符作为叶保留在平衡二叉树中。此外,树的内部节点应该保留出现在以特定节点为根的子树中的字母集(如果字母表很小且固定,则它们可以是位图)。

在这个结构中插入或删除一个字母只需要O(log(N))操作(更新根路径上的位图),查找第一个出现的字母也需要O(log(N))操作-从根向下,寻找其位图包含感兴趣的字母的最左边的子级。

编辑:内部节点还应该保留所表示的子树中的叶子数量,以便有效地计算字母的索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36122

复制
相关文章
SpringMVC返回不带引号的字符串方案汇总
项目使用springboot开发的,大部分出参为json,使用的fastJson。
chenchenchen
2021/09/06
2.3K0
去除字符串中的双引号「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142601.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
2.7K0
【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )
文章目录 一、Python 字符串定义形式 二、字符串中包含 单引号 / 双引号 一、Python 字符串定义形式 ---- Python 字符串定义形式 : 单引号定义法 : name = 'Tom' 双引号定义法 : name = "Tom" 三引号定义法 : 该定义方式与多行注释相同 , 使用 三引号 定义字符串 : 如果使用变量接收 , 那么定义的就是字符串 ; 如果没有变量接收 , 那么定义的就是多行注释 ; name = """Tom""" 代码示例 : # 单引号定义字符串 nam
韩曙亮
2023/04/07
3.2K0
【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )
delphi字符串加引号_oracle 单引号
sp_qry.Close; sp_qry.SQL.Clear; sp_qry.SQL.Add(‘select * from item_info where item_clsno=’+quotedstr(sp_lb.KeyValue)); sp_qry.Open;
全栈程序员站长
2022/11/10
1.4K0
MySQL中的单引号和双引号
《请注意前方高能有引号!》提到过Oracle中引号的处理,其实不仅是Oracle,其他的数据库中,同样存在引号是否使用正确的问题,看到社区的这篇文章,就介绍了MySQL中对单引号和双引号的几种使用场景,可以借鉴学习。
bisal
2023/01/08
4.6K0
MySQL中的单引号和双引号
TeX中的引号
在TeX中,左引号是"“",右引号是"”"。输入一篇包含双引号的文章,你的任务时把它转换成TeX的格式。
Vincent-yuan
2020/05/26
1K0
python3 引号中嵌套引号
我们有时候需要在引号中嵌套引号。例如输入一段完整的代码print(str+'你好'),而代码中有引号。
py3study
2020/01/13
3.7K0
【说站】js字符串中的三种引号
2、单引号和双引号基本相同。反引号允许我们通过${…}在字符串中嵌入任何表达式。允许字符串换行。
很酷的站长
2022/11/24
1.5K0
tomcat返回cookie有双引号问题
2.问题发现 发现与平时的cookie属性不一样,多了一个version=1的额外项。 经了解还有version=0的场景。 因为代码是一致的,在其他tomcat版本执行,没有问题,所以想到是tomcat版本不一致导致的。 目前场景所用的版本为: tomcat 8.0.35 而正常可使用的tomcat版本是较高的版本8.5.6
MickyInvQ
2020/09/27
1.5K0
Python中单引号,双引号,3个单引号
我们知道Python以其易用性而著名,所以刚开始看教程学习看到单引号和双引号都可以使用会以为这是Python为了方便程序员,随便用哪个就好,不用担心用错。其实,背后的原因不只是这么简单。举个例子,想想I'm a big fans of Python.这个字符串应该怎么定义。
py3study
2020/01/13
3.8K0
获取字符串内双引号中的所有内容
测试字符串 String str = "[\"内容\",\"标题\"]"; 编码如下: package Action; import java.util.regex.Matcher; import java.util.regex.Pattern; public class demo { public static void main(String[] args) { String str = "[\"内容\",\"标题\"]"; Pattern p = Pattern.compile("\"
红目香薰
2022/11/29
4.5K0
获取字符串内双引号中的所有内容
Python 引号、注释、字符串
Python3.6.3    json==2.0.9    win10.0.17134
用户7886150
2021/01/13
9420
判断数组中是否包含某个元素,判断对象中是否包含某个属性,判断字符串中是否包含某个字符串片段[通俗易懂]
缺点: hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
全栈程序员站长
2022/09/28
3.3K0
[oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
转义字符回忆上次内容最近玩的是\n、\r 之外的转义序列 \a是 ␇ (bell)\t是 水平制表符\v是 换行不回车通过 16 进制数值转义 \xhh把(hh)16 进制对应的 ascii 字符输出通过 8 进制数值转义 \ooo把(nnn)8 进制对应的 ascii 字符输出这次加了 转义输出 反斜杠本身 \\ 输出 \总是转义 还是挺麻烦的能否直接输出原样输出呢?搜索帮助找到raw stringrawr的含义是 raw原始原样如果是有r就原样输出为什么raw就是原始原样呢?raw生的食物 没有
oeasy
2023/01/17
1.7K0
[oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
Bash Shell 中单引号和双引号的区别
你会经常在 Linux 命令行中使用引号,处理文件名中的空格?你使用引号。处理特殊字符?你再次使用引号。
网络技术联盟站
2022/04/12
3.7K0
Bash Shell 中单引号和双引号的区别
php中的双引号与单引号的基本使用
PHP字符串变量用于存储并处理文本, 在创建字符串之后,我们就可以对它进行操作。我们可以直接在函数中使用字符串,或者把它存储在变量中
itclanCoder
2023/09/14
5900
php中的双引号与单引号的基本使用
shell字符串单双引号的坑
运行非常成功!结果正常输出!然后我就愉快地去重并call variant,但是当我查看g.vcf文件时发现样本名为W0
生信技能树
2021/02/04
5K0
python笔记22-literal_eval函数处理返回json中的单双引号
在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常理出牌,如下这种,result对应的是一个list数据,却又加了单引号变成了一个字符串 严格意义来讲,json串里面应该都是双引号,这种单双交替的就尴尬了
上海-悠悠
2018/07/25
2.4K0
python笔记22-literal_eval函数处理返回json中的单双引号
json.loads()的字符串中为单引号引发的错误
Traceback (most recent call last): File "G:/FastWorkStateServer/logs/redis_fabu.py", line 20, in <module> print(json.loads(str2)) File "D:\python3.6.5\lib\json\__init__.py", line 354, in loads return _default_decoder.decode(s) File "D:\python3.6.5\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "D:\python3.6.5\lib\json\decoder.py", line 355, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
用户1558882
2018/10/10
3.3K0
点击加载更多

相似问题

匹配句子中的多引号

23

强迫包含引号的句子为字符串- Java

41

如何返回字符串“句子”中的字数

15

LINQ根据引号将字符串拆分成句子

41

如何提取段落中的某个句子?Python

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文