Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >解析有序列表中的歧义类别

解析有序列表中的歧义类别
EN

Stack Overflow用户
提问于 2009-03-04 12:39:15
回答 2查看 215关注 0票数 3

让我们举一个具体的例子,希望我能说清楚。假设(已排序的)月份列表:

一月<二月<三月<…<十二月

(整数表示月份,以零为基础),这样

Jan是0,Feb是1,…,Dec是11。

现在假设我无法访问月份的全名,并得到以下列表,其中月份已缩短为第一个字母,e表示一个空类别,如下所示:

e,F,e,e,e

如果我构建了一个“明确的月份”列表(f:1,s:8,o:9,n:10,d:11),我可以通过首先计算第一个类别(使用减法和mod 12)来填充空类别,然后从其中写出其余的内容。但是,假设我得到了这个列表

e,A,e,e,J,e

然后,我可以(直觉地)计算出,虽然A是模棱两可的(可能是4月或8月),但在这种情况下,它只能是4月,因为在两个类别之后,8月没有任何_J_s跟随它。一旦我发现了这一点,我就可以从一开始就重新计算每件事。

最后,我的问题是:对于这个问题是否有一个解析解(函数、算法),还是我唯一希望用蛮力来定义每个潜在关系?对于某些例子,任何消歧算法/函数都不起作用:假设我有一个J后面是11e,后面是一个J,然后是11e‘s。由于之间有一年的时间,我不能将J的歧义区分为一月、六月或七月。

running :我最后编写了Il的答案,因为特别是在这个例子中,regex是可以的,即使在较高的运行时间O(mn)。然而,我接受Ben的答案是正确的,因为它包含其他的(提到regex解决方案),但也建议使用KMP算法O(m+n)更好的方法,尽管这是针对更多的字符串来匹配模式。谢谢各位。

EN

回答 2

Stack Overflow用户

发布于 2009-03-05 01:39:03

最简单的方法是使用正则表达式。假设您想要匹配e, A, e, e, J, e

构造以下正则表达式:r = ".A..J."

c成为我们的控制字符串:

代码语言:javascript
运行
AI代码解释
复制
  c = "JFMAMJJASONDJFMAMJJASOND"

现在,我们在字符串r中搜索c的所有匹配项,其中匹配的起始索引位于c的前半部分。

一般来说,这可能不是最有效的方法。最天真的解决方案是,尝试将模式与控制字符串"JFMAMJJASOND"的每一次循环移位相匹配,在O(nm) time中运行,其中n是模式的长度,m是控制字符串的长度(在我们的例子中是JFMAMJJASOND)。

票数 4
EN

Stack Overflow用户

发布于 2009-03-05 07:24:48

在一般情况下,我们可以以Il的回答为基础。首先,我们认识到,A,M或J的唯一真正的模棱两可的对是两个J,它们相隔6个月,或者是两个相同的字母,相隔一年。任何其他组合都将在控件字符串中产生明确的匹配。(为了证明这一点,我建立了一个由所有可能的组合组成的表格。)

因此,从整个开始列表中只需要两个月,其距离mod 12不是0或6,然后可以构建一个小的正则表达式来匹配控制字符串。或者,您可以构建一个查找表,其中包含有序对和月份之间的距离。

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

https://stackoverflow.com/questions/612321

复制
相关文章
html如何设置有序列表的列表项,HTML的有序列表
针对HTML的有序列表,由于平常使用的不是很多,刚开始使用的时候也是有遇到一些坑,有几个小问题:
全栈程序员站长
2022/07/02
3.2K0
html如何设置有序列表的列表项,HTML的有序列表
python有序列表_python有序列表以及方法的介绍(代码)
本篇文章给大家带来的内容是关于python有序列表以及方法的介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
全栈程序员站长
2022/07/04
7220
HTML 有序列表 字母,HTML之有序列表教程
信息有时候是无序归纳的,有的却有着明确的顺序,在上一篇也提到了。那么简单的来想一下身边有哪些事物是有先后顺序的:操作步骤、排行榜、书目录……以前我们面对这些有着顺序或是有数字注明排序的内容时大多是在数据前自行加上一个数值,或是由程序加上这个数值。而如果使用有序列表则不需要这么麻烦,根本不用自行去填写序数,当单层列表的时候这种特性似乎并不明显,而当使用多层的时候其特性就很明显了。那么还是先来了解一下有序列表的代码形式:
全栈程序员站长
2022/09/13
1.9K0
html 有序列表、无序列表、自定义列表
HTML有一个特殊元素,用于创建ordered lists(有序列表), 或数字编号列表。 有序列表以<ol>元素开始,并包含一个或多个<li>元素。 例如:
Devops海洋的渔夫
2019/05/31
4.1K0
【HTML】HTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )
列表 由于其 整齐 , 整洁 , 有序 的特征 , 类似于表格 , 但是其 组合的自由程度高于表格 , 经常用来进行布局 ;
韩曙亮
2023/03/30
3K0
【HTML】HTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )
变量歧义命名
Solidity允许在继承时对状态变量进行歧义命名,定义有变量x的合约A可以继承同样含有状态变量x的合约B,这将导致两个单独版本的x,一个可以从合约A访问, 而另一个则需要从合约B访问,在更复杂的合约系统中,这种情况可能不会引起注意, 并随后导致严重的安全问题。
Al1ex
2021/07/21
4310
变量歧义命名
有点歧义
scale 默认count,点的数量决定小提琴图的胖瘦,scale = "width"是让多个小提琴显示同样的最大宽度。
小洁忘了怎么分身
2022/12/28
4050
有点歧义
LeetCode 708. 循环有序列表的插入
给定循环升序列表中的一个点,写一个函数向这个列表中插入一个新元素,使这个列表仍然是循环升序的。 给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。
Michael阿明
2021/02/19
9770
具有列表功能的有序字典实现 ListOrderedDict
在python编程中,遇到了字典需要有序的情况,可以使用 collections 库中的 OrderedDict,在保持字典功能的同时使得其元素保持输入顺序;
为为为什么
2022/08/06
8870
7. html 有序列表、无序列表、自定义列表
HTML有一个特殊元素,用于创建ordered lists(有序列表), 或数字编号列表。有序列表以<ol>元素开始,并包含一个或多个<li>元素。例如:
Devops海洋的渔夫
2022/01/14
1.1K0
7. html 有序列表、无序列表、自定义列表
Python中将字典转换为有序列表、无序列表的方法
说明:列表不可以转换为字典 1.转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()
用户1214487
2018/04/13
3.5K0
Python中将字典转换为有序列表、无序列表的方法
符合标准的有序列表分页源码示例
一个符合标准的有序列表分页源码示例。 你可以根据你所应用的不同程序语言,打包生成一个符合标准的分页控件。 DOM结构: <ul class="pagination" title="分页列表"> <
练小习
2017/12/29
7500
python中的有序字典
 字典是python开发中的一种常用的数据结构,但是它在迭代时并不是按照元素的顺序进行,可能在某些场景下无法满足我们的需求,这就引入了有序字典
py3study
2020/01/13
2.4K0
Sweet Snippet 系列之 有序列表
很朴素的一种想法,为了维持 List 有序,我们可以在 Add 操作之后进行 Sort 操作(Remove 操作后不需要重新 Sort):
用户2615200
2018/08/02
3160
一张图解析 FastAdmin 中的表格列表
该图片取自 fastadmin 问答区: https://ask.fastadmin.net/article/323.html
很酷的站长
2022/12/16
5.1K0
一张图解析 FastAdmin 中的表格列表
python_笔记3_list列表(有序
append('元素') 把一个元素推到列表末尾 inset('索引','元素') 把一个元素插入到列表指定位置 pop() 把一个元素从列表末尾推出,返回值是这个元素 pop('索引') 把指定的索引的元素推出,注意如果是多个的话顺序很重要,pop(3) -> pop(2) 先推出后面的,因为pop后顺序会被打乱
py3study
2020/01/08
3370
Redis源码解析——有序整数集
        有序整数集是Redis源码中一个以大尾(big endian)形式存储,由小到大排列且无重复的整型集合。它存储的类型包括16位、32位和64位的整型数。在介绍这个库的实现前,我们还需要先熟悉下大小尾内存存储机制。(转载请指明出于breaksoftware的csdn博客)
方亮
2019/01/16
4900
☆打卡算法☆LeetCode 26、删除有序数组中的重复项 算法解析
“将给定的有序数组删除重复出现的元素,使每个元素只出现一次,返回删除后数组的长度。”
恬静的小魔龙
2022/08/07
3240
☆打卡算法☆LeetCode 26、删除有序数组中的重复项  算法解析
当心那些有歧义的命名
关键点 “别人还能把这个名字理解成什么意思?”通过不断的问自己这个问题来积极检查每一个命名。 事实上,这种富有创造性的、不断尝试“错误理解”的方法,能够有效的发现歧义的命名,并修正它们。正如本文中的示例,我们将随时通过“骑驴看唱本 ——边走边瞧”的方式来 探讨所见到名字的误解之处,然后选取一个更好的名字。 示例:Filter() 假设写了一段代码来操作数据库结果的集合: results = Database.all_objects.filter("year <= 2011") 那么,r
葡萄城控件
2018/01/10
1.2K0
当心那些有歧义的命名
点击加载更多

相似问题

csv文件解析中的歧义

38

在歧义语法和无歧义语法中解析树

114

如何获得XML解析器解析的有序列表?

23

C初始化列表语法歧义的解析

14

Ruby类名解析中的歧义

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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