Leetcode 345. 反轉字串中的母音字母 Java&Python
阿新 • • 發佈:2018-11-22
編寫一個函式,以字串作為輸入,反轉該字串中的母音字母。
示例 1:
輸入: "hello" 輸出: "holle"
示例 2:
輸入: "leetcode" 輸出: "leotcede"
說明:
母音字母不包含字母"y"。
這道題目的解題思路與167號問題兩數之和一致,這裡只分享一下Java和Python的程式碼實現
Java
public String reverseVowels(String s) { if (s.equals("") || s.length() < 2) { return s; } int i = 0; int j = s.length() - 1; char[] c = s.toCharArray(); while (i < j) { if (isVowel(c[i]) && isVowel(c[j])) { char temp = c[i]; c[i++] = c[j]; c[j--] = temp; } else if (isVowel(c[i])) { j--; } else { i++; } } return String.valueOf(c); } private boolean isVowel(char c) { return c == 'a' || c == 'i' || c == 'e' || c == 'o' || c == 'u' || c == 'A' || c == 'I' || c == 'E' || c == 'O' || c == 'U'; }
Python
def reverseVowels(self, s): """ :type s: str :rtype: str """ vowel = "AEIOUaeiou" array = list(s) i = 0 j = len(array) - 1 while i < j: if array[i] in vowel and array[j] in vowel: array[i], array[j] = array[j], array[i] i += 1 j -= 1 elif array[i] in vowel: j -= 1 else: i += 1 return ''.join(array)