1. 程式人生 > 其它 >【leetcode】1704. Determine if String Halves Are Alike

【leetcode】1704. Determine if String Halves Are Alike

題目如下:

You are given a stringsof even length. Split this string into two halves of equal lengths, and letabe the first half andbbe the second half.

Two strings arealikeif they have the same number of vowels ('a','e','i','o','u','A','E','I','O','U'). Notice thatscontains uppercase and lowercase letters.

Returntrueifaandbarealike. Otherwise, returnfalse.

Example 1:

Input: s = "book"
Output: true
Explanation: a = "bo" and b = "ok". a has 1 vowel and b has 1 vowel. Therefore, they are alike.

Example 2:

Input: s = "textbook"
Output: false
Explanation: a = "text" and b = "book". a has 1 vowel whereas b has 2. Therefore, they are not alike.
Notice that the vowel o is counted twice.

Constraints:

  • 2 <= s.length <= 1000
  • s.lengthis even.
  • sconsists ofuppercase and lowercaseletters.

解題思路:很簡單的題目,可以採用頭尾指標的方法,左邊遇到母音加一,右邊遇到母音減一,最後判斷結果是否為零即可。

程式碼如下:

class Solution(object):
    def halvesAreAlike(self, s):
        """
        :type s: str
        :rtype: bool
        """
        count 
= 0 voewls = ('a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U') for i in range(len(s)/2): if s[i] in voewls: count +=1 if s[len(s)/2+i] in voewls: count -= 1 return count == 0