[LeetCode By Go 87]345. Reverse Vowels of a String

題目

Write a function that takes a string as input and reverse only the vowels of a string.

Example 1:
Given s = "hello", return "holle".

Example 2:
Given s = "leetcode", return "leotcede".

Note:
The vowels does not include the letter "y".

解題思路

  1. 從兩端遍歷字符串,分別找到一個元音字母s[i], s[j],i < j, 然后交換兩個字符;
  2. i, j = i+1, j-1 ;繼續執行同樣的操作,直至遍歷完字符串

代碼

func isVowels(r rune) bool {
    if r == rune('a') || r == rune('e') || r == rune('i') || r == rune('o') || r == rune('u') || r == rune('A') || r == rune('E') || r == rune('I') || r == rune('O') || r == rune('U'){
        return true
    }
    return false
}

func reverseVowels(s string) string {
    len1 := len(s)
    runeS := []rune(s)
    for i, j := 0, len1-1; i < j; i, j = i+1, j-1{
        for ;!isVowels(runeS[i]) && i < len1-1; i++ {}
        fmt.Printf("i:%+v\n", i)
        for ;!isVowels(runeS[j]) && j > 0; j-- {}

        if i < j {
            runeS[i], runeS[j] = runeS[j], runeS[i]
        }
    }

    ret := string(runeS)

    fmt.Printf("ret:%+v\n", ret)
    return ret
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,775評論 0 33
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,981評論 19 139
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,934評論 0 23
  • 標簽(空格分隔): 編程 Go官方文檔 Using the tour 1.1 Hello, 世界 Welcome...
    uangianlap閱讀 1,551評論 0 5
  • 上周四參加光谷的拆書活動,作為觀察員點評了小舒,晚上回家有了些感想,別問我為什么現在才發,我有拖延癥!!! 如果你...
    牙牙囈語閱讀 589評論 0 1