gpt4 book ai didi

algorithm - Code Golf - 根据当前页生成附近的页码

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

<分区>

挑战在于创建一种算法,用于根据序列中的当前位置生成序列中特定大小的数字子集。

当浏览 Stack Overflow 或 Digg 等繁忙网站的多页内容时,通常需要为用户提供一种快速跳转到第一页、最后一页或特定页面的方法 在他们正在查看的当前页面附近。

要求

  • 始终显示第一页和最后一页
  • 页码子集将包含当前页码以及之前和/或之前的页码在它之后(取决于当前页面)
  • 页码子集将始终是固定数量的页面,并且永远不能超过或低于该固定数字,除非:
    • totalPages
      < fixedWidth
  • 当前页面的位置子集中的数字是固定的除非:
    • 1 <= currentPage <
      (fixedWidth - defaultPostion)
    • (totalPages -
      currentPage) < (fixedWidth - defaultPostion)
  • 输出应指示何时有第一个之间的差异大于 0数据页和第一页的子集以及之间子集的最后一页和最后一页数据的。这个指标应该出现在任一位置最多一次。

如果您还不能想​​象这个,请在​​问题/答案下查看您的 Stack Overflow 个人资料。如果其中任何一个的数量超过 10 个,您应该会在底部看到正是以这种方式生成的分页链接。那,或者滚动到http://digg.com的底部并观察他们的分页控制。

例子

所有示例都假设子集大小为 5,当前页面位于位置 3,但是这些应该可以在您的解决方案中配置。 ...表示页码之间的差距,[x]表示当前页面。


当前页:第 1 页,共 30 页

输出:[x][2][3][4][5]...[30]


当前页:第 2 页,共 30 页

输出:[1][x][3][4][5]...[30]


当前页:第 13 页,共 30 页

输出:[1]...[11][12][x][14][15]...[30]


当前页:第 27 页,共 30 页

输出:[1]...[25][26][x][28][29][30]


当前页:第 30 页,共 30 页

输出:[1]...[26][27][28][29][x]


当前页:第 3 页,共 6 页

输出:[1][2][x][4][5][6]


当前页:第 4 页,共 7 页

输出:[1][2][3][x][5][6][7]


补充说明

  • 第一页和最后一页不计入 numberOfPages除非它们是顺序的的一部分 numberOfPages如在 [1][x][3][4][5]...[30]或者 [1]...[26][27][28][x][30] , 但不在 [1]...[8][9][x][11][12]...[30]
  • 如果距离在子集的任一端和第一个之间或者最后一页小于 1。因此,有可能有一个不间断的页面序列 fixedWidth + 2[1][2][3][x][5][6]...[15]或者 [1][2][3][x][5][6][7]

欢迎使用任何和所有语言的解决方案。

祝你好运!

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