Reverse Words in a String

Kiritilgan `s qatori berilgan bo'lsa, so'zlarning tartibini o'zgartiring.

So'z bo'sh joy bo'lmagan belgilar ketma-ketligi sifatida aniqlanadi. S harfidagi so'zlar kamida bitta bo'sh joy bilan ajratiladi.

Yagona boʻsh joy bilan birlashtirilgan soʻzlar qatorini teskari tartibda qaytaring.

E'tibor bering, s ikkita so'z orasida bosh yoki keyingi bo'shliqlar yoki bir nechta bo'shliqlarni o'z ichiga olishi mumkin. Qaytarilgan satrda faqat so'zlarni ajratib turadigan bitta bo'sh joy bo'lishi kerak. Qo'shimcha bo'shliqlarni qo'shmang.

Example 1:

Input: s = "the sky is blue"
Output: "blue is sky the"

Example 2:

Input: s = "  hello world  "
Output: "world hello"
Explanation: Sizning teskari satringizda oldingi yoki keyingi bo'shliqlar bo'lmasligi kerak.

Example 3:

Input: s = "a good   example"
Output: "example good a"
Explanation: Ikki so'z orasidagi bir nechta bo'shliqni teskari satrda bitta bo'sh joyga qisqartirishingiz kerak.

Cheklovlar

  • 1 <= s.length <= 10^4

  • s inglizcha harflarni (katta va kichik harflar), raqamlar va ' ' bo'shliqlarni o'z ichiga oladi.

  • s ichida kamida bitta so'z bor.

Kuzatuv: Agar string maʼlumotlar turi sizning tilingizda oʻzgaruvchan boʻlsa, O(1) qoʻshimcha boʻsh joy bilan oʻz oʻrnida yecha olasizmi?

func reverseWords(s string) string {
	arr := strings.Split(s, " ")
	var result strings.Builder
	for i := len(arr) - 1; i >= 0; i-- {

		if arr[i] != "" {
			result.WriteString(arr[i])
			if i != 0 {

				result.WriteString(" ")
			}
		}
	}

	return strings.TrimSpace(result.String())
}

© Leetcode link

Last updated

Was this helpful?