好的,让我来回答这个问题。
题目:一个寺庙里的和尚要练字,他们的任务是在每一页写下同一首诗,共写25页。在每一页写字的时候,他们可以在每行的末尾加上一个圈来表示该行被选中,圈的数目代表了后续练习的字数。在给定的 25 页中,如果某个页面被选中超过一次,就将它算作废纸,不考虑其作用,因此实际在练字时只会考虑每一页上被圈过的行数。求一共会被写到哪些页上。
解题思路:
1. 首先需要明确一个概念,圈的数目代表了后续练习的字数,也就是说每一页的圈数都与后续的练字数量有关。
2. 对于每一页来说,它的作用不仅取决于自身的圈数,还取决于后续页面的圈数。这是因为后续页面的圈数决定了练字的内容。
3. 对于初始页面(第 1 页),它的圈数不会影响后续页面,因为没有任何后续页面会引用它。
4. 对于后续页面(从第 2 页开始),它们的作用会受到当前页面和前一页的影响。因此,需要将后续页面的情况分成两种情况讨论:当前页面没有被选中(即没有圈)和当前页面被选中(即有圈)。
5. 对于没有被选中的页面(即没有圈),它只会在两种情况下被用到:当它是一张新纸时(即它之前没有任何页面引用它),或者当它之前的页面被选中的圈数恰好等于它的圈数时(即它起到了承接之前页面内容的作用)。因此,可以通过遍历后续页面,并统计没有被选中的页面的数量来解决这个问题。
6. 对于被选中的页面(即有圈),它会在两种情况下被用到:当它之前的页面没有被选中时(即它的圈承接了之前页面的内容),或者当它之前的页面被选中的圈数大于它的圈数时(即它起到了承接之前页面内容并继续往下写的作用)。因此,可以通过遍历后续页面,并统计被选中的页面的数量来解决这个问题。
7. 最后,将没有被选中的页面和被选中的页面的数量相加,即可得到最终的结果。
具体实现过程如下:
Python代码实现:python基础代码写字
```python
def get_pages(pages):
css选择器和jquery选择器 pages_count = len(pages)深圳小程序开发公司
pages_not_selected = [] # 未被选中的页面
html加入标签怎么让文本框居中 pages_selected = [] # 被选中的页面
used_pages = set() # 已使用的页面集合
used_count = 0 # 已使用的圈的数量
for i in range(pages_count):
if i == 0: # 初始页面没有作用
continue
current_page = pages[i]
电脑上怎么下access软件 if not any(char.isfilled() for char in current_page if char.isfilled()): # 没有被选中,并且有新的纸开始或者上一页已完成到这一行的书写,将其添加到未选中页中
pages_not_selected.append(current_page)
else: # 被选中,并且上一页没有完成到这一行的书写,将其添加到选中页中
pages_selected.append(current_page)
for char in current_page: # 统计已使用的圈的数量
if char.isfilled():
used_count += 1
for char in current_page: # 将当前页面的行号加入已使用页面的集合中
if not char.isfilled():
used_pages.add(char.line)
return pages_not_selected + pages_selected, used_count, used_pages
```
解释代码中的各个部分:
达内php视频教程下载* `pages`:给定的页面列表。
* `pages_count`:页面数量。
* `pages_not_selected`:未被选中的页面列表。
* `pages_selected`:被选中的页面列表。
* `used_pages`:已使用的页面集合。这里主要用来记录每个行号对应的已经写入的字数(用 `char` 表示)。注意这个集合并不要求按顺序排序,因为它主要是为了记录已经被使用的行号,而非物理顺序。同时我们通过一个辅助类 `char` 来记录行号、是否完成书写以及已使用的圈的数量等信息。
* `used_count`:已使用的圈的数量。这个变量主要用于判断当前页面的行号是否已经被使用过。在遍历当前页面时,如果发现某个字符已经被填充过(即已经完成了一行的书写),那么就将 `used_count` 加一。同时我们通过遍
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论