gpt4 book ai didi

java - 根据单词之间的空格查找文本的宽度(JAVA)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:47:27 25 4
gpt4 key购买 nike

我一直在研究一个优化问题,它要求我找到一条文本的宽度,让我找到最长的河流。河流被定义为一系列空格,这些空格在不同的行中仅由 1 个或更少的字符分隔。例如,我有以下文本:

这是图片,红色的“x”表示河流。

image

-> 河流是不同行中的一系列空格,这些空格由一个字符向左、向右或无分隔。我们想要最长的。

文字要左对齐不能右对齐,不合适不能分词。

我一直在尝试处理每个单词的长度,而不是所有字符序列,以便更好地执行,但我无法以这种方式解决问题。我只能考虑测试所有的可能性(最小宽度是最长单词的长度),并获得更好的一个,但我认为这在时间和空间上都不高效。

我不是要你解决这个问题,我只是想知道你是否认为它可以用另一种方式解决。谢谢!

编辑:例如,给定一个文本,我想返回河流的宽度和长度。 image

最佳答案

好吧,我认为在没有一些提示的情况下说是的,你可以是没有意义的,所以你有...

我认为您应该首先定义您所知道的源自基本问题的规则:

假设:

  1. 字符串中的任何位置都不会出现两个或多个连续空格,
  2. 将不会自动换行,因此最小宽度将由最长单词的长度决定,
  3. 一行末尾的空白不应被视为河流的一部分(我不确定这是否是一条正确的规则,因为您可以想象有 6 条线的河流和其中一条线的情况6 恰好提前完成,因为下一个单词太长了)。

您仍然需要找到最长单词的长度,但这只是为了设置开始的最小宽度。

所以,你确实知道:

  1. 您有一个长字符串,需要包装到至少三个记录中,这样第三个记录至少有两个单词(您需要它来启用 可能 创建 3 行河流,这是最小的,对吧?),
  2. 因此,您可以计算任何行的最大长度,意思是,整个字符串的长度 - 最后两个单词的长度 - 1(1 是最后两个单词之间的空格)除以 2

根据这些假设和事实,您可以简单地将文本循环部署到矩阵中(每个单元格包含一个字符)并逐行检查您发现的符合规则的河流。

关于java - 根据单词之间的空格查找文本的宽度(JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50419784/

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