【leetcode】1704. Determine if String Halves Are Alike
阿新 • • 發佈:2022-02-07
題目如下:
You are given a string
s
of even length. Split this string into two halves of equal lengths, and leta
be the first half andb
be the second half.Two strings arealikeif they have the same number of vowels (
'a'
,'e'
,'i'
,'o'
,'u'
,'A'
,'E'
,'I'
,'O'
,'U'
). Notice thats
contains uppercase and lowercase letters.Return
true
ifa
andb
arealike. 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.length
is even.s
consists 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