ノートタイトルleetcodeブラシ(のpython3) - ストリング151個のリバース単語

文字列で151リバース単語

入力文字列を考えると、言葉によって、文字列の単語を逆に。

例1:

入力:「空が青い」
出力:「青空で」
例2:

入力: "!Hello World"の
出力:「世界!hello」を
説明:あなたの逆の文字列は、先頭または末尾にスペースを含めることはできません。
例3:

入力:「良い例」
出力:「例の良い」
説明:あなたが逆の文字列内の1つのスペースに二つの単語の間に複数のスペースを削減する必要があります。

注意:

単語は、非空白文字のシーケンスとして定義されます。
入力文字列は、先頭または末尾にスペースが含まれていてもよいです。しかし、あなたの逆の文字列は、先頭または末尾にスペースを含めることはできません。
あなたは逆の文字列内の1つのスペースに二つの単語の間に複数のスペースを削減する必要があります。
不是很清楚为什么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