当前位置: 首页 > ds >正文

LeetCode 2942.查找包含给定字符的单词:使用库函数完成

【LetMeFly】2942.查找包含给定字符的单词:使用库函数完成

力扣题目链接:https://leetcode.cn/problems/find-words-containing-character/

给你一个下标从 0 开始的字符串数组 words 和一个字符 x 。

请你返回一个 下标数组 ,表示下标在数组中对应的单词包含字符 x 。

注意 ,返回的数组可以是 任意 顺序。

 

示例 1:

输入:words = ["leet","code"], x = "e"
输出:[0,1]
解释:"e" 在两个单词中都出现了:"leet" 和 "code" 。所以我们返回下标 0 和 1 。

示例 2:

输入:words = ["abc","bcd","aaaa","cbc"], x = "a"
输出:[0,2]
解释:"a" 在 "abc" 和 "aaaa" 中出现了,所以我们返回下标 0 和 2 。

示例 3:

输入:words = ["abc","bcd","aaaa","cbc"], x = "z"
输出:[]
解释:"z" 没有在任何单词中出现。所以我们返回空数组。

 

提示:

  • 1 <= words.length <= 50
  • 1 <= words[i].length <= 50
  • x 是一个小写英文字母。
  • words[i] 只包含小写英文字母。

解题方法:模拟

遍历字符串数组中的每个字符串,如果字符串中包含字符x,则将字符串对应下标添加到答案数组中。

  • 时间复杂度 O ( ∑ ) O(\sum) O(),其中 ∑ \sum 是字符数之和
  • 空间复杂度 O ( 1 ) O(1) O(1),力扣函数返回值不计入空间复杂度

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-05-24 21:30:36* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-24 21:34:02*/
class Solution {
public:vector<int> findWordsContaining(vector<string>& words, char x) {vector<int> ans;for (int i = 0; i < words.size(); i++) {if (words[i].find(x) != string::npos) {ans.push_back(i);}}return ans;}
};
Python
'''
Author: LetMeFly
Date: 2025-05-24 21:30:36
LastEditors: LetMeFly.xyz
LastEditTime: 2025-05-24 21:37:05
'''
from typing import Listclass Solution:def findWordsContaining(self, words: List[str], x: str) -> List[int]:return [i for i in range(len(words)) if x in words[i]]
Java
/** @Author: LetMeFly* @Date: 2025-05-24 21:30:36* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-24 21:38:47*/
import java.util.List;
import java.util.ArrayList;class Solution {public List<Integer> findWordsContaining(String[] words, char x) {List<Integer> ans = new ArrayList<>();for (int i = 0; i < words.length; i++) {if (words[i].indexOf(x) >= 0) {ans.add(i);}}return ans;}
}
Go
/** @Author: LetMeFly* @Date: 2025-05-24 21:30:36* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-24 21:40:52*/
package mainimport "strings"func findWordsContaining(words []string, x byte) (ans []int) {for i, word := range words {if strings.IndexByte(word, x) >= 0 {ans = append(ans, i)}}return
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

http://www.xdnf.cn/news/8729.html

相关文章:

  • 台式机安装新的固态硬盘后无显示
  • 【C语言练习】060. 使用指针操作字符串
  • Kotlin全栈工程师转型路径
  • Vue-创建应用/挂载应用/根组件模版-.vue单文件/应用配置
  • Cesium中根据不同条件设置3D Tiles样式
  • 【VBA 中GetOpenFilename】常用友好的人机交互文件全路径选择模式
  • 计算机视觉与深度学习 | 基于 YOLOv8 + BeautyGAN + CodeFormer + Face Parsing 实现简单的人脸美颜
  • 【来自纳米AI-大模型】ubuntu 24.04 登陆界面分辨率太高,内容显示得特别小 问题解决方案(亲测有效)
  • lua脚本学习笔记1:Vscode添加lua环境_lua基本语法
  • HarmonyOS赋能套件介绍
  • 开篇:MCP理论理解和学习
  • 元组可以比较大小吗?一次返回多个值?编程语言的元组?声明变量一定需要指定类型吗?
  • Ubuntu20.04 gr-gsm完整安装教程
  • Kanass V1.1.1版本发布,支持查看项目/迭代/事项进度
  • 剖析 Spring 中 @ResponseBody 原理与 Tomcat NIO 写事件(SelectionKey.OP_WRITE)的协作机制
  • MySQL分库分表
  • vue3中使用computed
  • Spark集群架构解析:核心组件与Standalone、YARN模式深度对比(AM,Container,Driver,Executor)
  • kafka之操作示例
  • 大文件上传,对接阿里oss采用前端分片技术。完成对应需求!
  • 【MySQL】第7节|Mysql锁机制与优化实践以及MVCC底层原理剖析
  • ubuntu 安装latex
  • 清除 Ubuntu 磁盘空间
  • 安卓开发用到的设计模式(2)结构型模式
  • 开发者工具箱-鸿蒙金额转换开发笔记
  • R语言学习--Day08--bootstrap原理及误区
  • Ollama01-安装教程
  • 【MySQL】07.表内容的操作
  • Android 16系统源码_自由窗口(一)触发自由窗口模式
  • Gateway全局过滤器:接口耗时统计与黑白名单配置