- 句子中的最多单词数
- 判断字符串的两半是否相似
一个 句子 由一些 单词 以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。
给你一个字符串数组 sentences ,其中 sentences[i] 表示单个 句子 。
请你返回单个句子里 单词的最多数目 。
示例 1:
输入:sentences = [“alice and bob love leetcode”, “i think so too”, “this is great thanks very much”] 输出:6 解释:
- 第一个句子 “alice and bob love leetcode” 总共有 5 个单词。
- 第二个句子 “i think so too” 总共有 4 个单词。
- 第三个句子 “this is great thanks very much” 总共有 6 个单词。 所以,单个句子中有最多单词数的是第三个句子,总共有 6 个单词。
来源:力扣(LeetCode)
首先利用split方法进行分割,然后得到单词个数,当然需要遍历数组,然后利用Math中的max方法得到最大的单词数。
class Solution {
public int mostWordsFound(String[] sentences) {
int x=0;
for(String s:sentences){
x = Math.max(x,s.split(" ").length);
}
return x;
}
}
题解里面还有一种方法就是数空格的个数,单词数等于空格数加1,所以只要遍历数组,得出空格个数即可。
判断字符串的两半是否相似给你一个偶数长度的字符串 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 相似。
来源:力扣(LeetCode)
思路比较简单,就是分两次遍历字符串,两个变量分别记录元音字母的个数,如果两个元音字母个数相等返回true。 也想过用数组或者字符串来存储那几个元音字母再查找,但是没有付诸实践。。
class Solution {
public boolean halvesAreAlike(String s) {
int a=0;
for(int i=0;i=s.length()/2;i--){
char y = s.charAt(i);
if(y=='a'||y=='e'||y=='i'||y=='o'||y=='u'||y=='A'||y=='E'||y=='I'||y=='O'||y=='U')
b++;
}
return a==b?true:false;
}
}
今日的题还算简单,但是要注意第二个题里面,将字符串分成两半的时候,哪个地方应该取等号,可以举个例子就能明白。