입력 문자열을 감안할 때, 말씀으로 문자열 단어를 반전.
예 1 :
입력 : "하늘이 파란색"
출력 : "푸른 하늘입니다"
예 2 :
입력 : "안녕하세요 세계!"
출력 : "세계! 안녕하세요 "
설명 : 귀하의 반대 문자열은 선행 또는 후행 공백을 포함하지 않아야합니다.
예 3 :
입력 : "좋은 예"
출력 : "예를 들어 좋은"
설명 : 반전 된 문자열에서 하나의 공간에 두 단어 사이에 여러 공간을 줄일 필요가있다.
노트 :
단어는 공백이 아닌 문자의 순서로 정의된다.
입력 문자열은 선행 또는 후행 공백을 포함 할 수 있습니다. 그러나 귀하의 반대 문자열은 선행 또는 후행 공백을 포함하지 않아야합니다.
당신은 반전 된 문자열에서 하나의 공간에 두 단어 사이에 여러 공간을 줄일 필요가있다.
不是很清楚为什么golang的strings.Split ()函数会分割出空字符串
func reverseWords(s string) string {
res := []string{}
sReverse := reverseString(s)
words := strings.Split(sReverse, " ")
for _, v := range words {
if v ==""{
continue
}
res = append(res, reverseString(v))
}
return strings.Join(res, " ")
}
func reverseString(s string) string {
runes := []rune(s)
for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
runes[from], runes[to] = runes[to], runes[from]
}
return string(runes)
}