首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定一个单词数组和一个字符串,我如何计算给定字符串中的所有单词

给定一个单词数组和一个字符串,计算给定字符串中的所有单词的方法如下:

  1. 遍历单词数组中的每个单词。
  2. 对于每个单词,使用字符串的indexOf()方法来查找该单词在给定字符串中的位置。
  3. 如果找到了该单词,则计数器加一。
  4. 继续遍历下一个单词,直到遍历完所有单词。
  5. 返回计数器的值,即为给定字符串中的所有单词的数量。

以下是一个示例代码,演示如何实现上述计算过程:

代码语言:txt
复制
function countWords(wordArray, inputString) {
  let count = 0;
  for (let i = 0; i < wordArray.length; i++) {
    if (inputString.indexOf(wordArray[i]) !== -1) {
      count++;
    }
  }
  return count;
}

// 示例用法
const words = ["apple", "banana", "orange"];
const input = "I have an apple and a banana";
const wordCount = countWords(words, input);
console.log("单词数量:", wordCount);

上述代码中,countWords()函数接受一个单词数组wordArray和一个字符串inputString作为参数。它使用indexOf()方法来查找每个单词在给定字符串中的位置,如果找到了则计数器加一。最后返回计数器的值,即为给定字符串中的所有单词的数量。

请注意,上述代码只计算了给定字符串中出现的单词数量,并没有考虑单词的重复出现。如果需要考虑单词的重复出现,可以使用正则表达式或其他方法进行匹配和计数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

LeetCode 151:给定一个字符串,逐个翻转字符串每个单词

示例 3: 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余空格,将反转后单词空格减少到只含一个。...说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余空格,但是反转后字符不能包括。 如果两个单词间有多余空格,将反转后单词空格减少到只含一个。...解题思路: Java 字符串不支持运算符重载,无法用原地解法。 我们将字符串转为字符型数组并用两个指针来解这道题。指针 i 作为原字符串转为字符数组索引,从右向左移。...这里利用函数投机取巧: split() ,它可以把传入字符串剔除空格后返回 所有单词数组 join() ,它可以指定一个数组以特定字符为间隔,拼接成一个字符串 加上 [::-1] 反转数组,一行代码既可实现该题目要求...' abc def ' 原字符串 'abc' , 'def' 剔除空格返回String型单词数组 'def' , 'abc' 切片反转数组 'def abc' 拼接成字符串

2.3K20

LeetCode 151:给定一个字符串,逐个翻转字符串每个单词 Reverse Words in a String

爱写bug(ID:icodebugs) 翻转字符串单词 Given an input string, reverse the string word by word....示例 3: 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余空格,将反转后单词空格减少到只含一个。...说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余空格,但是反转后字符不能包括。 如果两个单词间有多余空格,将反转后单词空格减少到只含一个。...解题思路: Java 字符串不支持运算符重载,无法用原地解法。我们将字符串转为字符型数组并用两个指针来解这道题。指针 i 作为原字符串转为字符数组索引,从右向左移。...这里介绍python函数: split() ,它可以把传入字符串剔除空格后返回 所有单词数组 join() ,它可以指定一个数组以特定字符为间隔,拼接成一个字符串 加上 [::-1] 反转数组,一行代码既可实现该题目要求

1.2K50

2022-02-11:单词缩写。 给定一个由n个不重复非空字符串

2022-02-11:单词缩写。 给定一个由n个不重复非空字符串组成数组,你需要按照以下规则为每个单词生成最小缩写。 初始缩写由起始字母+省略字母数量+结尾字母组成。...若存在冲突,亦即多于一个单词有同样缩写,则使用更长前缀代替首字母,直到从单词到缩写映射唯一。换而言之,最终缩写必须只能映射到一个单词。 若缩写并不比原单词更短,则保留原样。..., "face", "intrusion" 输出: "l2e","god","internal","me","i6t","interval","inte4n","f2e","intr4n" 注意: n每个单词长度均不超过...每个单词长度大于 1。 单词只由英文小写字母组成。 返回答案需要和原数组保持同一顺序。 力扣527。 答案2022-02-11: key存缩写词,value存单词列表。 代码用golang编写。

42810

给定一个字符串,找到包含该字符串所有字符最短子串

这题是豌豆荚二面的一个算法题,leetcode某些题目类似。...其思路是这样 首先遍历一次字符串,求出字符串不同字符数目 为每一个字符保存一个列表,记录该字符在字符串中出现索引 记录待求字符串首字母索引start(初始值为0),结束索引end(初始值为length...-1) 记录可能待求字符串首字母索引值为pStart(初始值为0) 重新遍历字符串,当前索引为index 更新没有遍历字符数目,更新当前字符对应索引列表。...如果pStart处字符对应列表长度大于1,则从索引列表移出pStart,并将pStart加1,并重复该过程 如果index处字符是第一次出现,则将剩余字符数目减一 如果剩余字符数目为0时,且子字符串...int start = 0, end = str.length() - 1; // 记录目标字符串开始位置 int pStart = 0; Map<Character

54210

关于一个数组两个数等于给定问题

今天遇到这样一个问题,问题描述如下:         给出一个数组,再给定一个数target,如果数组中有两个数等于target,那么返回这两个数索引,如果说有多对数都符合条件则返回第一对,返回结果用一个长度为...2数组保存,并且返回数组按升序排列:         如:[2,7,11,15]  target=9,那么返回[1,2],这只是一个最普遍例子,因为数组可以有重复数,如[0,4,1,0 ] target...思路一:当然是最简单啊,那就是穷举法,那么对上述所有情况都适用,但是时间复杂度为o(n*n),如果n变得很大时,那么就变得不可接受了。...,其实还可以扩展到三个数,问题描述可以是这样,从一个数组找出三个数索引,让他们等于0,如果用穷举法的话,那么时间复杂度将达到o(n*n*n),但是如果运用上面的思路的话,遍历数组,选取一个数作为...3个数一个数n,然后从剩余找出两个数等于-n两个数,那么这样的话,时间复杂度会减少到o(n*n),并且如果再仔细斟酌,那么第一个遍历过数都不会被算在内,那么程序将会更加快,这里只提供思路

74020

2021-05-26:给定一个char matrix,也就是char类型二维数组,再给定一个字符串word,可以从任何

2021-05-26:给定一个char[][] matrix,也就是char类型二维数组,再给定一个字符串word,可以从任何一个某个位置出发,可以走上下左右,能不能找到word?...设定1:可以走重复路情况下,返回能不能找到。比如,word = "zoooz",是可以找到,z -> o -> o -> o -> z,因为允许走一条路径已经走过字符。...设定2:不可以走重复路情况下,返回能不能找到。比如,word = "zoooz",是不可以找到,因为允许走一条路径已经走过字符不能重复走。 福大大 答案2021-05-26: 自然智慧即可。...对于不可重复情况,进入递归,走过位置需要标记为0;退出递归,走过位置需要恢复成原来值。 代码用golang编写。...} N := len(m) M := len(m[0]) wlen := len(word) // dp[i][j][k]表示:必须以m[i][j]这个字符结尾情况下

49630

2022-04-17:给定一个数组arr,其中值有可能正、负、0,给定一个正数k。返回累加>=k所有数组,最短数组长度。来自字节跳动。力扣8

2022-04-17:给定一个数组arr,其中值有可能正、负、0, 给定一个正数k。 返回累加>=k所有数组,最短数组长度。 来自字节跳动。力扣862。...答案2022-04-17: 看到子数组,联想到结尾怎么样,开头怎么样。 预处理前缀,单调栈。 达标的前缀,哪一个离k最近? 单调栈+二分。复杂度是O(N*logN)。 双端队列。...} let mut l: isize = 0; let mut r: isize = 0; for i in 0..N + 1 { // 头部开始,符合条件,...ans = get_min(ans, i as isize - dq[l as usize]); l += 1; } // 尾部开始,前缀比当前前缀大于等于

1.3K10
领券