Java教程

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

本文主要是介绍【算法】2114. 句子中的最多单词数(java / c / c++ / python / go / rust),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 2114. 句子中的最多单词数:
  • 样例 1:
  • 样例 2:
  • 提示:
  • 分析
  • 题解
    • java
    • c
    • c++
    • python
    • go
    • rust
  • 原题传送门:https://leetcode-cn.com/problems/maximum-number-of-words-found-in-sentences/


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)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!