- 👑专栏内容:力扣刷题
- ⛪个人主页:子夜的星的主页
- 💕座右铭:前路未远,步履不停
目录
- 一、题目描述
- 二、题目分析
一、题目描述
题目链接:判断字符串的两半是否相似
给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。
两个字符串相似 的前提是它们都含有相同数目的元音('a'
,'e'
,'i'
,'o'
,'u'
,'A'
,'E'
,'I'
,'O'
,'U'
)。注意,s 可能同时含有大写和小写字母。
如果 a 和 b 相似,返回 true ;否则,返回 false。
二、题目分析
在开始这道题之前,介绍一下Java里面的indexOf
方法。
indexOf
方法是Java中String
类提供的一个常用方法,用于查找指定字符或子字符串在当前字符串中第一次出现的位置。它的方法签名如下:
int indexOf(int ch)
int indexOf(int ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)
-
indexOf(int ch)
: 返回指定字符在字符串中第一次出现的位置。如果未找到该字符,则返回-1。 -
indexOf(int ch, int fromIndex)
: 返回指定字符在字符串中从指定位置开始的第一次出现的位置。如果未找到该字符,则返回-1。 -
indexOf(String str)
: 返回指定字符串在字符串中第一次出现的位置。如果未找到该字符串,则返回-1。 -
indexOf(String str, int fromIndex)
: 返回指定字符串在字符串中从指定位置开始的第一次出现的位置。如果未找到该字符串,则返回-1。
这些方法允许你在字符串中查找指定的字符或子字符串,并返回第一次出现的位置。如果字符串中没有找到指定的字符或子字符串,则返回-1。
知道了这些,这道题就简单了。
class Solution {
public boolean halvesAreAlike(String s) {
String check = "aeiouAEIOU";
int half = s.length() / 2;
int count1 = 0; int count2 = 0;
for(int i = 0 ;i < half;i++){
if(check.indexOf(s.charAt(i)) != -1) count1 ++;
if(check.indexOf(s.charAt(i + half)) != -1) count2 ++;
}
return count1==count2;
}
}