图解LeetCode——1704. 判断字符串的两半是否相似(难度:简单)
创始人
2024-01-20 17:11:36
0

一、题目

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

两个字符串 相似 的前提是它们都含有相同数目的元音('a','e','i','o','u','A','E','I','O','U')。注意,s 可能同时含有大写和小写字母。

如果 a 和 b 相似,返回 true ;否则,返回 false 。

二、示例

2.1> 示例 1:

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

2.2> 示例 2:

【输入】s = "textbook"
【输出】false
【解释】a = "text" 且 b = "book" 。a 中有 1 个元音,b 中有 2 个元音。因此,a 和 b 不相似。注意,元音 o 在 b 中出现两次,记为 2 个。

提示:

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

三、解题思路

根据题目描述,字符串s的长度是偶数,所以我们除2之后,得到字符串s一半的长度,肯定是个整数。那么我们需要做如下4个步骤:

步骤1】将10个 元音字符 保存到数组yy
步骤2】获取前一半 a 和后一半 b 的长度 range,即:range=s.length()/2
步骤3】同时遍历ab,a的遍历下标是i,b 的遍历下标是i+range;如果发现a中存在元音字符,则yc1加1;如果发现b中存在元音字符,则yc2加1
步骤4】遍历完毕后,如果yc1等于yc2,则返回true;否则返回false

具体操作,如下图所示:

四、代码实现

4.1> 采用数组确定是否存在元音

class Solution {public boolean halvesAreAlike(String s) {int[] yy = new int[123];yy['a'] = yy['e'] = yy['i'] = yy['o'] = yy['u'] = yy['A'] = yy['E'] = yy['I'] = yy['O'] = yy['U'] = 1;int range = s.length() / 2, yc1 = 0, yc2 = 0;for (int i = 0; i < range; i++) {if (yy[s.charAt(i)] == 1) yc1++;if (yy[s.charAt(i + range)] == 1) yc2++;}return yc1 == yc2;}
}

4.2> 采用字符串的indexOf确定是否存在元音

class Solution {public boolean halvesAreAlike(String s) {String yy = "aeiouAEIOU";int range = s.length() / 2, yc1 = 0, yc2 = 0;for (int i = 0; i < range; i++) {if (yy.indexOf(s.charAt(i)) != -1) yc1++;if (yy.indexOf(s.charAt(i + range)) != -1) yc2++;}return yc1 == yc2;}
}

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享 。

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...