Keshawn_lu's Blog

Leetcode 1704. 判断字符串的两半是否相似

字数统计: 281阅读时长: 1 min
2022/11/11 Share

题目简介:

给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b

两个字符串 相似 的前提是它们都含有相同数目的元音

'a''e''i''o''u''A''E''I''O''U')。注意,s 可能同时含有大写和小写字母。

如果 ab 相似,返回 true ;否则,返回 false

示例 1:

1
2
3
输入:s = "book"
输出:true
解释:a = "bo" 且 b = "ok" 。a 中有 1 个元音,b 也有 1 个元音。所以,a 和 b 相似。

提示:

  • 2 <= s.length <= 1000
  • s.length 是偶数
  • s大写和小写 字母组成

思路:

遍历计数即可。

tip:

  • 设置元音字符串,找字符时直接在里面寻找即可,简洁代码

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
bool halvesAreAlike(string s) {

int count = 0;
string yuan = "aeiouAEIOU";
for(int i = 0, j = s.size() / 2; j < s.size(); i++, j++){

if(yuan.find(s[i]) != string::npos)
count++;
if(yuan.find(s[j]) != string::npos)
count--;
}

return (count == 0);
}
};
CATALOG
  1. 1. 题目简介:
  2. 2. 思路:
  3. 3. 代码如下: