A sentence is a list of words that are separated by a single space with no leading or trailing spaces.
You are given an array of strings sentences
, where each sentences[i]
represents a single sentence.
Return the maximum number of words that appear in a single sentence.
Example 1:
Input: sentences = ["alice and bob love leetcode", "i think so too", "this is great thanks very much"] Output: 6 Explanation: - The first sentence, "alice and bob love leetcode", has 5 words in total. - The second sentence, "i think so too", has 4 words in total. - The third sentence, "this is great thanks very much", has 6 words in total. Thus, the maximum number of words in a single sentence comes from the third sentence, which has 6 words.
Example 2:
Input: sentences = ["please wait", "continue to fight", "continue to win"] Output: 3 Explanation: It is possible that multiple sentences contain the same number of words. In this example, the second and third sentences (underlined) have the same number of words.
Constraints:
1 <= sentences.length <= 100
1 <= sentences[i].length <= 100
sentences[i]
consists only of lowercase English letters and' '
only.sentences[i]
does not have leading or trailing spaces.- All the words in
sentences[i]
are separated by a single space.
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 (String s : sentences) {
ans = Math.max(ans, 1 + count(s, ' '));
}
return ans;
}
private int count(String s, char c) {
int cnt = 0;
for (char ch : s.toCharArray()) {
if (ch == c) {
++cnt;
}
}
return cnt;
}
}
class Solution {
public:
int mostWordsFound(vector<string>& sentences) {
int ans = 0;
for (string& s : sentences)
ans = max(ans, 1 + count(s, ' '));
return ans;
}
int count(string s, char c) {
int cnt = 0;
for (char& ch : s)
if (ch == c)
++cnt;
return cnt;
}
};
func mostWordsFound(sentences []string) int {
count := func(s string, c rune) int {
cnt := 0
for _, ch := range s {
if ch == c {
cnt++
}
}
return cnt
}
ans := 0
for _, s := range sentences {
ans = max(ans, 1+count(s, ' '))
}
return ans
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
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;
}