返回介绍

solution / 2100-2199 / 2114.Maximum Number of Words Found in Sentences / README

发布于 2024-06-17 01:03:09 字数 3901 浏览 0 评论 0 收藏 0

2114. 句子中的最多单词数

English Version

题目描述

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

给你一个字符串数组 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] 中所有单词由单个空格隔开。

解法

方法一:空格计数

我们遍历数组 sentences,对于每个句子,我们计算其中的空格数,那么单词数就是空格数加 $1$。最后返回最大的单词数即可。

时间复杂度 $O(L)$,空间复杂度 $O(1)$。其中 $L$ 是数组 sentences 中所有字符串的长度之和。

class Solution:
  def mostWordsFound(self, sentences: List[str]) -> int:
    return 1 + max(s.count(' ') for s in sentences)
class Solution {
  public int mostWordsFound(String[] sentences) {
    int ans = 0;
    for (var s : sentences) {
      int cnt = 1;
      for (int i = 0; i < s.length(); ++i) {
        if (s.charAt(i) == ' ') {
          ++cnt;
        }
      }
      ans = Math.max(ans, cnt);
    }
    return ans;
  }
}
class Solution {
public:
  int mostWordsFound(vector<string>& sentences) {
    int ans = 0;
    for (auto& s : sentences) {
      int cnt = 1 + count(s.begin(), s.end(), ' ');
      ans = max(ans, cnt);
    }
    return ans;
  }
};
func mostWordsFound(sentences []string) (ans int) {
  for _, s := range sentences {
    cnt := 1 + strings.Count(s, " ")
    if ans < cnt {
      ans = cnt
    }
  }
  return
}
function mostWordsFound(sentences: string[]): number {
  return sentences.reduce(
    (r, s) =>
      Math.max(
        r,
        [...s].reduce((r, c) => r + (c === ' ' ? 1 : 0), 1),
      ),
    0,
  );
}
impl Solution {
  pub fn most_words_found(sentences: Vec<String>) -> i32 {
    let mut ans = 0;
    for s in sentences.iter() {
      let mut count = 1;
      for c in s.as_bytes() {
        if *c == b' ' {
          count += 1;
        }
      }
      ans = ans.max(count);
    }
    ans
  }
}
#define max(a, b) (((a) > (b)) ? (a) : (b))

int mostWordsFound(char** sentences, int sentencesSize) {
  int ans = 0;
  for (int i = 0; i < sentencesSize; i++) {
    char* s = sentences[i];
    int count = 1;
    for (int j = 0; s[j]; j++) {
      if (s[j] == ' ') {
        count++;
      }
    }
    ans = max(ans, count);
  }
  return ans;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文