问题标签 [lexicographic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
18 浏览

bash - 排序命令多次输出所有内容时遇到问题

我有一个用 mktemp 制作的临时文件。在脚本退出之前,我必须将文件的内容输出到屏幕上。内容必须按字典顺序排序。当我尝试对临时文件应用排序时,它会多次输出排序结果。即我的临时文件看起来像这样没有排序

这输出

我想按字典顺序排序,但是当我这样做时

我得到以下输出

我不知道为什么会这样。任何帮助将不胜感激

0 投票
0 回答
105 浏览

javascript - 按字典顺序获取字符串的上一个和下一个值

我正在使用 noSQL 数据库,由于某些原因,我无法在查询中使用相等过滤

例如

不被允许

但允许不等式过滤

例如

我的 ID 是唯一的字符串(电子邮件),我需要使用等式过滤,所以我想将不等式语句转换为等式语句(例如 where id = 10 可以写为 Where id > 9 AND < 11)。

如果我的 id 是数字,我会使用这样的代码来获取我的密钥:

使用数字很容易做到这一点,但使用字符串我发现它更具挑战性。如果我有诸如 mysuperfakeemail.gmail.com 之类的电子邮件,我怎么能得到上一个和下一个字典字符串(我假设它们分别是 mysuperfakeemail.gmail.co l和 mysuperfakeemail.gmail.con ?是否已经有针对此类功能的既定算法?我正在使用 UTF-8 字符的 nodejs 服务器上写这个。

0 投票
1 回答
737 浏览

math - 如何在 Macaulay2 中计算 S 对?

Buchberger 的算法需要计算 S 对(更多信息参见 Cox 等人 2008 年第 3 版的 Ideals, Varities and Algorithm 的第 83 页)

S(f,g)=LCM(LT(f),LT(g))/LT(f) *f - LCM(LT(f),LT(g))/LT(g) * g

其中 LCM 是最小公倍数(相当于书上符号中的 x^\gamma),LT 是前导项。

如何在 Macaulay2 中或以其他方式计算 S 对?

示例:按分级字典顺序排列的 S 对,g1=x^2-y 和 g2=x^3-z,其中 S(g1,g2)=xz-xy。

在此处输入图像描述

0 投票
3 回答
13918 浏览

c# - 按字典顺序排序 C#

我有这个用于排序字符串的代码:

此代码按长度对字符串进行排序,我怎样才能按长度和字典顺序进行排序?

例子

在这种情况下工作正常,但是当我有

我的第一个字符串是 ebacaba,这是错误的。

0 投票
3 回答
4577 浏览

java - 吐出以元音开头和辅音结尾的最小和最大子字符串的算法

我正在尝试用 Java 编写这样的算法。我正在测试字符串输入“abaab”。假设字符串输入为小写字母是安全的。

我在检查我的算法哪里出错时不知所措(它只为此输入输出“a a”而不是“ab”和“abaab”。有什么想法吗?

0 投票
1 回答
2615 浏览

java - 获取按字典顺序最小和最大的子字符串。我的算法在大多数测试用例中都失败了,但我不明白为什么。帮我弄清楚

我今天必须为面试做一个测试,问题是获得字典上最小和最大的子字符串(换句话说,按名称排序)。

链接- 完成函数 SmallestAndLargestSubstring,它以一个由小写英文字母 (az) 组成的字符串 S 作为其参数,并返回以元音开头和辅音结尾的按字典顺序排列的最小和最大子字符串。

我的算法通过了基本的测试用例,但其他大多数都失败了。它不是最有效的代码,但它是最快的编写代码。

无论如何,我想弄清楚我哪里出错了,所以我对测试用例进行了逆向工程,以找出传入的输入是什么,希望我能够找出我的算法出了什么问题。

这是我发现的,这些是我的答案(根据测试用例是错误的)。

输入

字符串 s = "azizezozuzawwwwwwwwwuzzzzzzzzabbbbbbbaaaabbbboiz"

我的答案

最小的=“aaaab”;

最大 = "uzzzzzzzzabbbbbbbaaaabbbboiz";

但是对于我的生活,我无法弄清楚我的错误在哪里。这是我的子字符串的完整列表,从最小到最大排序。链接到排序结果

在过去的 3 个小时里,我一直在绞尽脑汁。如果有人能弄清楚我的错误在哪里,我将不胜感激。

编辑:这里还有 3 个测试用例。我的答案与这些测试用例答案相匹配。

字符串 = "aba"; 最小=“ab”;最大=“ab”;

字符串 = "aab"; 最小=“aab”;最大=“ab”;

string = "abababababbaaaaaaaaaaaaaaaz"; 最小的=“aaaaaaaaaaaaaaaz”;最大 = "az";

0 投票
2 回答
6128 浏览

python - 具有 int 值的 SQLAlchemy order_by 字符串列

我有一个带有字符串列的表,但它只包含整数(作为字符串)。

当我想在某些查询中按此列排序时,问题就来了。SQLAlchemy(或更具体地说是python)对字符串使用字典顺序,所以

即使当

如何实现 order_by 这个字符串列的数值?

我目前有这样的查询:

请注意,将列的类型更改为整数不是一种选择,我需要在当前条件下正确(按数值)order_by。

还发现直接在使用 SQL 的数据库上(这是一个 MySQL 数据库)我无法按此列正确排序,所以我发现使用 CAST(string_column_holding_integers AS unsigned) 在这里有效。但是还没有找到直接在 SQLAlchemy 查询上执行此操作(CAST 部分)的方法。

0 投票
1 回答
129 浏览

mysql - SQL ROW 子查询中比较的顺序定义?

我想知道当使用比较运算符(例如>or )执行行子查询时>=,比较顺序是使用字典(即字典)顺序定义的还是按元素定义的?

也就是说,对于ROW (A, B),应该

在子句的行查询中是TRUE(字典)还是(元素方式)?FALSEWHERE

我在 PostgreSQL 中对此进行了测试,似乎它使用的是字典顺序,即(79, 48) > (75, 52)因为TRUE第二79 > 75个组件因此无关紧要。环顾四周,似乎 MySQL 也是这种情况:MySQL row subquery comparison issue,而 MySQL 文档似乎在这一点上令人困惑。搜索postgresql row subquery并没有显示太多关于比较顺序的信息。

虽然字典顺序从计算机科学的角度来看是有意义的,但对于数据库用户来说可能看起来有点奇怪,因为行的顺序现在取决于您在 SQL 中首先列出的列。例如,使用字典顺序,我们应该有:

ROW (B,A). 比较相同的行,顺序正好相反,因为列B首先列出。

我的问题是:

这种行为(在行查询中使用字典顺序)是来自 SQL 标准/跨供应商还是特定于实现?有这方面的参考吗?

0 投票
3 回答
1165 浏览

java - 如何将两个按字典顺序排列的 String ArrayList 合并到新的第三个 ArrayList 中?

如何在不修改两个原始列表的情况下将两个按字典顺序排列的 String ArrayList 合并到新的第三个 ArrayList 中?例如,允许重复。如果list1是:1、3、5,list2是:2、4、7、8、8。那么新合并的list3应该是:1、2、3、4、5、7、8、8。我需要创建 2 个 while 循环,第一个循环一直持续到整个列表,第二个循环从另一个列表中取出剩余元素,并将所有剩余元素放在新列表的末尾3。我基本上需要比较两个列表索引以查看哪个元素前进。一切都应该是正确的,但我需要帮助来制作 while 循环。

很抱歉描述太长,但我会投票给任何有帮助的人!谢谢!

0 投票
3 回答
605 浏览

c# - 订购清单 lexicographically using brute force

That's my code...

string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis nisl vitae dolor tempus iaculis at id augue. Nullam metus mauris,

That's my code...

My problem is how to compare lexicographically, i guess the if is comparing alphabetically. Thanks.


Your list contains instances of type object which does not implement IComparable and thus you can´t call instance1 < instance2. However as you put only single characters into your list I guess you can use a List<char> instead or even simpler string instead of a list.

Thus you can now call this:

Which will order your characters lexigraphically.

Furthermore when calling string.Replace the result is returned by the method as strings are immutable. So Within your first loop you use the original content of text instead of the replaced. Use this instead: text = text.Replace(" ", "");

EDIT: If - as you claim in your comments - you have to use a list of object and all the instances within this list implement IComparable (which char does) you can simply cast the instances to the interface before sorting: