gpt4 book ai didi

algorithm - 不使用循环对字符串列表进行排序的伪代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:43 26 4
gpt4 key购买 nike

我试图想出一种算法,根据前 4 个字符(比如文件中的每一行)对字符串列表进行排序,而不使用传统的循环方法,例如 while。输入的一个例子是:

1231COME1900123
1233COME1902030
2031COME1923919
1231GO 1231203
1233GO 1932911
2031GO 1239391

问题是,我们事先不知道可以有多少条记录。每个4位身份证号可以有多个COMEGO记录。但它们是预先按上述方式排序的。我想按文件的 4 位数 ID 号对文件进行排序。并实现这一目标:

1231COME1900123
1231GO 1231203
1233COME1902030
1233GO 1932911
2031COME1923919
2031GO 1239391

我唯一合乎逻辑的评论是我们应该使用递归方式来读取记录,但排序部分对我来说有点棘手。也可以使用 GOTO。有任何想法吗?

最佳答案

假设每个条目的前 4 个字符始终是数字,您可以执行以下操作:

  1. 创建一个长度为 10000 的列表,其中每个元素可以包含一对值。
  2. 根据前 4 位数字输入列表的该元素。
  3. 各个元素的形状如下 -> [COME_ELEMENT, GO_ELEMENT]
  4. 每个 COME_ELEMENTGO_ELEMENT 本身就是一个列表,长度等于最大值 + 1,可以出现在单词 COME 之后&开始
  5. 现在,当字符串到达​​时,在前 4 位将其断开。现在,转到列表的那个元素。
  6. 之后,检查它是成功还是成功。
  7. 如果是 go(假设),则确定单词 go 后面的数字。
  8. 将字符串插入内部列表中的索引(在第 7 步中确定)。
  9. 完成插入值后,只需遍历非空元素即可。

如此获得的结果将包含您需要的排序顺序,而无需使用循环。

关于algorithm - 不使用循环对字符串列表进行排序的伪代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54418182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com