力扣(LeetCode)-2114. 句子中的最多单词数

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

给你一个字符串数组 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 个单词。

示例 2:

输入:sentences = ["please wait", "continue to fight", "continue to win"]
输出:3
解释:可能有多个句子有相同单词数。
这个例子中,第二个句子和第三个句子(加粗斜体)有相同数目的单词数。
 

提示:

1 <= sentences.length <= 100
1 <= sentences[i].length <= 100
sentences[i] 只包含小写英文字母和 ' ' 。
sentences[i] 的开头和结尾都没有空格。
sentences[i] 中所有单词由单个空格隔开。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-words-found-in-sentences

 题解:

做这个题第一反应是可以用双层循环,但是时间复杂度肯定就高了;很久没有用Java,好些方法都不太会用了,试了用,发现效果好了;要记住一些常用的方法!!!他们各自的运行时间和内存消耗见下图。

(一)

class Solution {
    public int mostWordsFound(String[] sentences) {
        int maxWordNum = 0;
        for(int i = 0; i < sentences.length; i++){
            int wordNum = 1;
            for(int j = 0 ;j < sentences[i].length();j++){
                if(sentences[i].charAt(j) == ' '){
                    wordNum += 1;
                    continue;
                }
            }
            if(wordNum > maxWordNum){
                maxWordNum = wordNum;
            }
        }
        return maxWordNum;
    }
}

(二) 

class Solution {
    public int mostWordsFound(String[] sentences) {
        int maxWordNum = 0;
        for(int i = 0; i < sentences.length; i++){
            int wordNum = sentences[i].split(" ").length;
            if(wordNum > maxWordNum){
                maxWordNum = wordNum;
            }
        }
        return maxWordNum;
    }
}

 (三)

class Solution {
    public int mostWordsFound(String[] sentences) {
        int maxWordNum = 0;
        for(int i = 0; i < sentences.length; i++){
            int wordNum = sentences[i].split(" ").length;
            maxWordNum = Math.max(maxWordNum,wordNum);
        }
        return maxWordNum;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值