算法2114. 句子中的最多单词数(java / c / c++ / python / go / rust)

Posted 二当家的白帽子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法2114. 句子中的最多单词数(java / c / c++ / python / go / rust)相关的知识,希望对你有一定的参考价值。


文章目录


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] 中所有单词由单个空格隔开。

分析

  • 面对这道算法题目,二当家的陷入了沉思。
  • 根据提示,每个单词之间都有空格,而且开头和结尾没有空格,那么单词数量就是空格数量加一。

题解

java

class Solution 
    public int mostWordsFound(String[] sentences) 
         int ans = 0;

        for (String s : sentences) 
            int count = 1;
            for (char c : s.toCharArray()) 
                if (c == ' ') 
                    count++;
                
            
            if (count > ans) 
                ans = count;
            
        

        return ans;
    


c

int mostWordsFound(char ** sentences, int sentencesSize)
    int ans = 0;

    for (int i = 0; i < sentencesSize; i++) 
        int count = 1;
        char *s = sentences[i];
        while (*s++) 
            if (*s == ' ') 
                count++;
            
        
        if (count > ans) 
            ans = count;
        
    

    return ans;


c++

class Solution 
public:
    int mostWordsFound(vector<string>& sentences) 
        int ans = 0;

        for (string &s: sentences) 
            int cnt = count(s.begin(), s.end(), ' ') + 1;
            if (cnt > ans) 
                ans = cnt;
            
        

        return ans;
    
;

python

class Solution:
    def mostWordsFound(self, sentences: List[str]) -> int:
        ans = 0
        for sentence in sentences:
            cnt = sentence.count(' ') + 1
            if cnt > ans:
                ans = cnt
        return ans
        

go

func mostWordsFound(sentences []string) int 
    ans := 0

	for _, s := range sentences 
		cnt := 1
		for _, c := range s 
			if c == ' ' 
				cnt++
			
		
		if cnt > ans 
			ans = cnt
		
	

	return ans


rust

impl Solution 
    pub fn most_words_found(sentences: Vec<String>) -> i32 
        let mut ans = 0;
        sentences.iter().for_each(|s| 
            let cnt = s.as_bytes().iter().filter(|&&c|  c as char == ' ' ).count() + 1;
            if cnt > ans 
                ans = cnt;
            
        );
        return ans as i32;
    



原题传送门:https://leetcode-cn.com/problems/maximum-number-of-words-found-in-sentences/


非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~


以上是关于算法2114. 句子中的最多单词数(java / c / c++ / python / go / rust)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode2114. 句子中的最多单词数(C++)

LeetCode2114. 句子中的最多单词数(C++)

蓝桥杯java 算法提高 统计单词数

LeetCode 2047. 句子中的有效单词数

LeetCode 2047. 句子中的有效单词数 / 1996. 游戏中弱角色的数量 / 1765. 地图中的最高点

计算包含来自其他列表Python的单词的句子数[关闭]