In this HackerRank Remove the First Capital Letter from Each Element problem solution In this challenge, we practice reading and transforming arrays.
Task
You are given a list of countries, each on a new line. Your task is to read them into an array and then transform them in the following way:
The first capital letter (if present) in each element of the array should be replaced with a dot (‘.’). Then, display the entire array with a space between each country’s names.
Input Format
The input format consists of a list of country names each on a separate line. The only characters present in the country names will be upper or lower-case characters and hyphens.
Output Format
Transform the names as described and display the entire array of country names with a space between each of them.
Problem solution.
a=(`cat $@`) echo ${a[@]/[A-Z]/.}
Second solution.
n=0 while read c; do if [ "$c" != "" ]; then Country[$n]=$c ((n++)) fi done for i in ${!Country[@]}; do Country[$i]=".${Country[$i]:1}" done echo "${Country[@]}"
Third solution.
i=0 while read line do ary[i]=`echo "${line}" | sed -r 's/^[A-Z]+/./g'` ((i++)) done echo ${ary[@]}
Fourth solution.
ar=() while read input do ar=("${ar[@]}" "$input") done declare -a pattern=( ${ar[@]/[A-Z]/.} ) echo ${pattern[@]}