알고리즘 101 - Consecutive strings

박진현·2021년 7월 31일
0

알고리즘 (Javascript / C)

목록 보기
101/125

Q.

Description:
You are given an array(list) 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.

Examples:
strarr = ["tree", "foling", "trashy", "blue", "abcdef", "uvwxyz"], k = 2

Concatenate the consecutive strings of strarr by 2, we get:

treefoling (length 10) concatenation of strarr[0] and strarr[1]
folingtrashy (" 12) concatenation of strarr[1] and strarr[2]
trashyblue (" 10) concatenation of strarr[2] and strarr[3]
blueabcdef (" 10) concatenation of strarr[3] and strarr[4]
abcdefuvwxyz (" 12) concatenation of strarr[4] and strarr[5]

Two strings are the longest: "folingtrashy" and "abcdefuvwxyz".
The first that came is "folingtrashy" so
longest_consec(strarr, 2) should return "folingtrashy".

In the same way:
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 "".

Note
consecutive strings : follow one after another without an interruption

A)

function longestConsec(strarr, k) {
    // your code
  if (strarr.length === 0 || k > strarr.length || k <=0 ) return ''
  
  let longestStr = ''
  let controllStr = ''
  
  for (let i = 0; i < strarr.length; i++) {
    controllStr = strarr.slice(i, i+k)
    if (longestStr.length < controllStr.join('').length ) longestStr = controllStr.join('')
  }
  return longestStr
}
profile
👨🏻‍💻 호기심이 많고 에러를 좋아하는 프론트엔드 개발자 박진현 입니다.

0개의 댓글