LeetCode句子中的最多单词数&判断字符串的两半是否相似

文章目录

    • 句子中的最多单词数
    • 判断字符串的两半是否相似

句子中的最多单词数

一个 句子 由一些 单词 以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。

给你一个字符串数组 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 x = s.charAt(i);
            if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u'||x=='A'||x=='E'||x=='I'||x=='O'||x=='U')
                a++;
        }
        int b=0;
        for(int i=s.length()-1;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;
    }
}

今日的题还算简单,但是要注意第二个题里面,将字符串分成两半的时候,哪个地方应该取等号,可以举个例子就能明白。

你可能感兴趣的:(LeetCode,Java,leetcode,java)