最大化用字母r完成的行数

 小白学习 发布于 2023-02-13 15:15

我只是想知道我在之前的算法测试中遇到的问题.问题是关于一个男孩写作和散文.他希望最大化以'r'结尾的行数,因为他认为这会在他的论文中产生更高的等级(什么......).

无论如何,论文的限制是每行的最后72-80个字符需要在其中包含一个字母,除非包含下一个单词在一行上超过80个字符(例如,我们可以在72-80中有一个没有字母的行字符点如果添加下一个单词会使该行有80多个字符)或它是最后一行(最后一行可以少于72个字符).

例如,如果约束为10-15而不是72-80,则格式如下所示:

123456789012345

The slow blue  
dog is  
entertaining

是否有一种有效的算法可以在保持72-80字母约束的同时最大化以字母"r"结尾的行数?我们不能剪切整个单词以便以"r"结尾.

我尝试使用的算法做到了这一点:

    从72开始检查当前行的72-80是否为字母"r".

    如果72-80中没有字母"r",我们只是尝试尽可能地填写该行,然后转到下一行.

    如果在72-80中有一个字母"r",我们将结束该行.

    重复1直到没有更多行.

我对这个贪婪算法的主要问题是第2步.尽可能多地填充该行有可能在"r"中结束未来的结束行.

使用具有10-15约束的此算法将得到:

123456789012345
The man was in 
the backgarden  
or the yard

但最佳解决方案是:

123456789012345
The man was 
in the 
backgarden or 
the yard

:(

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有