给你两个字符串数组 word1
和 word2
。如果两个数组表示的字符串相同,返回 true
;否则,返回 false
。
数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。
示例 1:
输入:word1 = ["ab", "c"], word2 = ["a", "bc"] 输出:true 解释: word1 表示的字符串为 "ab" + "c" -> "abc" word2 表示的字符串为 "a" + "bc" -> "abc" 两个字符串相同,返回 true
示例 2:
输入:word1 = ["a", "cb"], word2 = ["ab", "c"] 输出:false
示例 3:
输入:word1 = ["abc", "d", "defg"], word2 = ["abcddefg"] 输出:true
提示:
1 <= word1.length, word2.length <= 103
1 <= word1[i].length, word2[i].length <= 103
1 <= sum(word1[i].length), sum(word2[i].length) <= 103
word1[i]
和 word2[i]
由小写字母组成
class Solution {
? // 定义一个方法,用于检查两个字符串数组是否表示相同的字符串
? public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
? ? ? // 创建两个 StringBuilder 对象,用于拼接字符串
? ? ? StringBuilder sb1 = new StringBuilder();
? ? ? StringBuilder sb2 = new StringBuilder();
?
? ? ? // 遍历第一个字符串数组 word1,将每个字符串拼接到 sb1 中
? ? ? for (String str : word1) {
? ? ? ? ? sb1.append(str);
? ? ? }
?
? ? ? // 遍历第二个字符串数组 word2,将每个字符串拼接到 sb2 中
? ? ? for (String str : word2) {
? ? ? ? ? sb2.append(str);
? ? ? }
?
? ? ? // 比较两个拼接后的字符串是否相等,返回比较结果
? ? ? return sb1.toString().equals(sb2.toString());
? }
}
C语言
// 函数:检查两个字符串数组是否表示相同的字符串
bool arrayStringsAreEqual(char **word1, int word1Size, char **word2, int word2Size) {
?
? // 若两个字符串数组均为空,则认为它们相等
? if (word1Size == 0 && word2Size == 0) {
? ? ? return true;
? }
?
? // 定义临时字符数组,用于存储拼接后的字符串
? char temp[10000] = "";
? char temp2[10000] = "";
?
? // 遍历第一个字符串数组 word1,将每个字符串拼接到 temp 中
? for (int i = 0; i < word1Size; i++) {
? ? ? strcat(temp, word1[i]);
? }
?
? // 遍历第二个字符串数组 word2,将每个字符串拼接到 temp2 中
? for (int i = 0; i < word2Size; i++) {
? ? ? strcat(temp2, word2[i]);
? }
?
? // 使用 strcmp 函数比较两个拼接后的字符串是否相等
? if (strcmp(temp, temp2) == 0) {
? ? ? return true;
? }
?
? // 如果两个字符串不相等,返回 false
? return false;
}
class Solution {
public:
? bool arrayStringsAreEqual(vector<string>& word1, vector<string>& word2) {
? ? ? string str1, str2;
? ? ? for (auto& str : word1) str1 += str;
? ? ? for (auto& str : word2) str2 += str;
? ? ? return str1 == str2;
? }
};
class Solution:
? def arrayStringsAreEqual(self, word1: List[str], word2: List[str]) -> bool:
? ? ? return ''.join(word1) == ''.join(word2)
一个 句子 由一些 单词 以及它们之间的单个空格组成,句子的开头和结尾不会有多余空格。
给你一个字符串数组 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]
中所有单词由单个空格隔开。
class Solution {
? // 方法:计算句子中单词的最大数量
? public int mostWordsFound(String[] sentences) {
? ? ? // 初始化最大单词数量为 0
? ? ? int maxWords = 0;
?
? ? ? // 遍历每个句子
? ? ? for (String sentence : sentences) {
? ? ? ? ? // 初始化当前句子的单词数量为 1(假设每个句子至少有一个单词)
? ? ? ? ? int words = 1;
?
? ? ? ? ? // 获取当前句子的长度
? ? ? ? ? int length = sentence.length();
?
? ? ? ? ? // 遍历句子中的每个字符
? ? ? ? ? for (int i = 0; i < length; i++) {
? ? ? ? ? ? ? // 如果当前字符是空格,增加单词数量
? ? ? ? ? ? ? if (sentence.charAt(i) == ' ') {
? ? ? ? ? ? ? ? ? words++;
? ? ? ? ? ? ? }
? ? ? ? ? }
?
? ? ? ? ? // 更新最大单词数量
? ? ? ? ? maxWords = Math.max(maxWords, words);
? ? ? }
?
? ? ? // 返回最大单词数量
? ? ? return maxWords;
? }
}
// 函数:计算句子中单词的最大数量
int mostWordsFound(char **sentences, int sentencesSize) {
? int wordsNum = 1; // 初始化单词数量为1,假设每个句子至少有一个单词
? int max = 1; ? ? ? // 初始化最大单词数量为1
?
? // 遍历每个句子
? for (int i = 0; i < sentencesSize; i++) {
? ? ? wordsNum = 1; // 重置单词数量为1
?
? ? ? // 遍历句子中的每个字符
? ? ? for (int j = 0; j < strlen(sentences[i]); j++) {
? ? ? ? ? // 如果当前字符是空格,增加单词数量
? ? ? ? ? if (sentences[i][j] == ' ') {
? ? ? ? ? ? ? wordsNum++;
? ? ? ? ? }
? ? ? }
?
? ? ? // 更新最大单词数量
? ? ? if (wordsNum > max) {
? ? ? ? ? max = wordsNum;
? ? ? }
? }
?
? // 返回最大单词数量
? return max;
}
class Solution {
public:
? int mostWordsFound(vector<string>& sentences) {
? ? ? int res = 0;
? ? ? for (const string& sentence: sentences) {
? ? ? ? ? // 单词数 = 空格数 + 1
? ? ? ? ? int cnt = count(sentence.begin(), sentence.end(), ' ') + 1;
? ? ? ? ? res = max(res, cnt);
? ? ? }
? ? ? return res;
? }
};
class Solution:
? def mostWordsFound(self, sentences: List[str]) -> int:
? ? ? res = 0
? ? ? for sentence in sentences:
? ? ? ? ? # 单词数 = 空格数 + 1
? ? ? ? ? cnt = sentence.count(' ') + 1
? ? ? ? ? res = max(res, cnt)
? ? ? return res