노트 제목 leetcode 브러시 (python3) -. 문자열 151 개 역 단어

문자열에서 151 역 단어

입력 문자열을 감안할 때, 말씀으로 문자열 단어를 반전.

예 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)
}
게시 98 개 원래 기사 · 원의 칭찬 0 · 조회수 1447

추천

출처blog.csdn.net/weixin_44555304/article/details/104430980