Consecutive strings

You are given an array strarr of strings and an integer k. Your task is to return the first longest string consisting of k consecutive strings taken in the array.

Example: longest_consec(["zone", "abigail", "theta", "form", "libe", "zas", "theta", "abigail"], 2) --> "abigailtheta"

n being the length of the string array, if n = 0 or k > n or k <= 0 return "".

Good Solution1:

class LongestConsec {
    public static String longestConsec(String[] strarr, int k) {
        if (strarr.length == 0 || k > strarr.length || k <= 0)
            return "";

        String longestStr = "";
        for (int index = 0; index < strarr.length - k + 1; index++) {
            StringBuilder sb = new StringBuilder();
            for (int i = index; i < index + k; i++) {
                sb.append(strarr[i]);
            }
            if (sb.toString().length() > longestStr.length()) {
                longestStr = sb.toString();
            }
        }
        return longestStr;
    }
}

Good Solution2:

import java.util.stream.*;
class LongestConsec {
  public static String longestConsec(String[] strarr, int k) {
    String maxStr = "";
    for (int i=0; i<=strarr.length-k; i++) {
      String current = IntStream.range(i, i+k).mapToObj(j -> strarr[j]).collect(Collectors.joining());
      if (current.length() > maxStr.length()) maxStr = current;
    }
    return maxStr;
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,353评论 0 33
  • 流年带走了青春,徒留回忆,拒绝怀旧,因为太过伤感。但我生来就是一个喜欢怀旧的人,不论心中花田的过往是繁华亦...
    木语MH阅读 4,900评论 3 11
  • 这是一个虚幻的年代,这是一个富饶的年代 这是一个人会自负的时刻,这是一个人应该自卑的时刻 所有人妄躁疾呼:我是真理...
    张三王二阅读 5,077评论 0 0
  • 6月完成了15公里,虽说不是非常远的距离,却是自己的一个突破,也又一次挑战了自己的体能,同时也暴露出了一些新的问题...
    刘子逸阅读 1,690评论 0 1