1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class Solution { func reverseVowels(_ s: String) -> String { var chars = Array(s) var left = 0, right = chars.count-1 var tmp:Character var flag1 = false, flag2 = false while left < right { switch chars[left] { case "a", "e", "i", "o", "u","A","E","I","O","U": flag1 = true default: left += 1 flag1 = false break } switch chars[right] { case "a", "e", "i", "o", "u","A","E","I","O","U": flag2 = true default: right -= 1 flag2 = false break } if flag1 && flag2 { chars.swapAt(left, right) left += 1 right -= 1 } } let str = String(chars) return str } }
|