给你一个偶数长度的字符串 s
。将其拆分成长度相同的两半,前一半为 a
,后一半为 b
。
两个字符串 相似 的前提是它们都含有相同数目的元音('a'
,'e'
,'i'
,'o'
,'u'
,'A'
,'E'
,'I'
,'O'
,'U'
)。注意,s
可能同时含有大写和小写字母。
如果 a
和 b
相似,返回 true
;否则,返回 false
。
示例 1:
输入:s = "book" 输出:true 解释:a = "bo" 且 b = "ok" 。a 中有 1 个元音,b 也有 1 个元音。所以,a 和 b 相似。
示例 2:
输入:s = "textbook" 输出:false 解释:a = "text" 且 b = "book" 。a 中有 1 个元音,b 中有 2 个元音。因此,a 和 b 不相似。 注意,元音 o 在 b 中出现两次,记为 2 个。
代码
class Solution: def halvesAreAlike(self, s: str) -> bool: l = len(s) c1, c2 = 0, 0 for i, j in zip(range(0,int(l/2)),range(int(l/2),l)): if s[i] == 'a' or s[i] == 'A' or s[i] == 'e' or s[i] == 'E' or s[i] == 'i' or s[i] == 'I' or s[i] == 'o' or\ s[i] == 'O' or s[i] == 'u' or s[i] == 'U': c1 += 1 if s[j] == 'a' or s[j] == 'A' or s[j] == 'e' or s[j] == 'E' or s[j] == 'i' or s[j] == 'I' or s[j] == 'o' or\ s[j] == 'O' or s[j] == 'u' or s[j] == 'U': c2 += 1 return True if c1 == c2 else False s = "textbook" a = Solution() print(a.halvesAreAlike(s))
结果