当前位置: 首页 > 知识库问答 >
问题:

用流操作从字符串中查找最小和最大的子字符串

东博瀚
2023-03-14

我有一个字符串s和一个整数k(子字符串长度),我正在尝试编写函数,这样它就可以找到长度为k的最小和最大的子字符串。并返回一个字符串,其中最小和最大的子字符串与换行符组合在一起。

到目前为止,我用下面的方法解决了这个问题,我编写了相同的代码来查找最小和最大的子字符串,然而,我想用流返回两个子字符串的单行代码。

public static String getSmallestAndLargest(String s, int k) {
    String smallest = "";
    String largest = "";

    smallest = IntStream.range(0, s.length() - k + 1).mapToObj((value) -> s.substring(value, value + k))
            .collect(Collectors.minBy(String.CASE_INSENSITIVE_ORDER)).get();

    largest = IntStream.range(0, s.length() - k + 1).mapToObj((value) -> s.substring(value, value + k))
            .collect(Collectors.maxBy(String.CASE_INSENSITIVE_ORDER)).get();

    return smallest + "\n" + largest;
}

我非常感谢任何建议,因为我现在正在学习lambda和stream。

那么,我该如何优雅地解决这个简单的问题呢?

共有1个答案

田骁
2023-03-14

我将按照老一套方法,将排序后的流收集到一个列表中,然后得到第一个和最后一个元素:

List<String> list = IntStream.range(0, s.length() - k + 1)
    .mapToObj((value) -> s.substring(value, value + k))
    .sorted(String.CASE_INSENSITIVE_ORDER)
    .collect(Collectors.toList());

smallest = list.get(0);
largest = list.get(list.size() - 1);
 类似资料:
  • 我试图从字符串中找到最小的子字符串(包含 set 的所有值) 例如: 因为< code>OxVxT是示例1中最小的子串(包含集合的所有元素),所以我为它编写了代码,但这不是最好的方法,也不适用于所有示例,我没有通过我的代码找到最小的子串,我的代码如下: 我找到所有可能的子字符串索引,然后找到它们之间的距离,并且距离最短的子字符串是字符串中最小的子字符串。我的代码不能处理所有测试用例,也没有给出正确

  • 我如何在O(N**2)个时间内完成它?

  • //我试图在我的数组列表中找到最大的字符串并将其打印出来,还包括最大元素所在的索引,并将其打印到屏幕上。我只是想知道我哪里出错了。 谢谢

  • http://articles.leetcode.com/2011/11/lengton-palindromic-substring-part-i.html 我处理这个问题的领域是用java编写代码,使用简单的强力解决方案,然后使用o(n2)方法,没有额外的空间,就像现在这样。http://www.geeksforgeeks.org/lengte-palindromic-substring-set

  • 本文向大家介绍字符串中最大和最小的单词-JavaScript,包括了字符串中最大和最小的单词-JavaScript的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个JavaScript函数,该函数接受字符串并返回一个带有两个字符串值的数组,它们应分别是字符串中最小和最大的单词。 例如- 如果字符串是- 那么输出应该是- 因此,让我们为该功能编写代码 示例 以下是代码- 输出结果 控制台中的

  • 我被一些有趣的任务困住了。我有3个字符串(hello,heavy&word)。需要计算每一个世界的总和并打印最大的世界和总和。用于计算-a=1,z=26。所以hello=50,heavy=61&word=60。最大的字符串是“Heavy”,我需要像“Heavy,61”那样打印出来。我找到了从一个字符串计算字符的代码: