Abstract

The concatenate an array problem from HackerRank.

Concatenate an array to itself#

Concatenate an Array to Itself | HackerRank

Problem#

Concatenate an Array with Itself

Given a list of countries, each on a new line, your task is to read them into an array. Then, concatenate the array with itself (twice) - so that you have a total of three repetitions of the original array - and then display the entire concatenated array, with a space between each of the countries’ names.

Input Format#

A list of country names. The only characters present in the country names will be upper or lower case characters and hyphens.

Output Format#

Display the entire concatenated array, with a space between each of them.

Sample Input#

Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway

Sample Output#

Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway

Explanation#

The entire concatenated array has been displayed.

No Newline

The read command expects input that ends with a newline, which is not provided in this challenge, so the solution is considerably more complicated than would otherwise be necessary.

Solution#

#!/usr/bin/env bash

declare -a country_array

# shellcheck disable=SC2162
while IFS= read -r array_line || [[ -n "$array_line" ]]; do
    country_array+=("${array_line}")
done

country_array+=("${country_array[@]}" "${country_array[@]}")

printf "%s " "${country_array[@]}"