How to get the middle words of a string in Go

1 Answer

0 votes
package main

import (
	"fmt"
	"math"
	"strings"
)

func getMiddleWords(s string) string {
	wordsSlice := strings.Fields(s)
	numWords := len(wordsSlice)

	if numWords%2 == 0 {
		middle1 := wordsSlice[int(math.Floor(float64(numWords) / 2)) - 1]
		middle2 := wordsSlice[int(math.Floor(float64(numWords) / 2))]
		
		return middle1 + " " + middle2
	} else {
		middleMinus1 := wordsSlice[int(math.Floor(float64(numWords) / 2)) - 1]
		middle := wordsSlice[int(math.Floor(float64(numWords) / 2))]
		middlePlus1 := wordsSlice[int(math.Floor(float64(numWords) / 2)) + 1]
		
		return middleMinus1 + " " + middle + " " + middlePlus1
	}
}

func main() {
	s := "c++ c java golang c# python rust"

	fmt.Println(getMiddleWords(s))
}


/*
run:

java golang c#

*/

 



answered Oct 8, 2024 by avibootz

Related questions

1 answer 110 views
1 answer 110 views
1 answer 126 views
1 answer 123 views
1 answer 123 views
...